<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive BOM for KiCAD</title>
  <style type="text/css">
:root {
  --pcb-edge-color: black;
  --pad-color: #878787;
  --pad-hole-color: #CCCCCC;
  --pad-color-highlight: #D04040;
  --pad-color-highlight-both: #D0D040;
  --pad-color-highlight-marked: #44a344;
  --pin1-outline-color: #ffb629;
  --pin1-outline-color-highlight: #ffb629;
  --pin1-outline-color-highlight-both: #fcbb39;
  --pin1-outline-color-highlight-marked: #fdbe41;
  --silkscreen-edge-color: #aa4;
  --silkscreen-polygon-color: #4aa;
  --silkscreen-text-color: #4aa;
  --fabrication-edge-color: #907651;
  --fabrication-polygon-color: #907651;
  --fabrication-text-color: #a27c24;
  --track-color: #def5f1;
  --track-color-highlight: #D04040;
  --zone-color: #def5f1;
  --zone-color-highlight: #d0404080;
}

html,
body {
  margin: 0px;
  height: 100%;
  font-family: Verdana, sans-serif;
}

.dark.topmostdiv {
  --pcb-edge-color: #eee;
  --pad-color: #808080;
  --pin1-outline-color: #ffa800;
  --pin1-outline-color-highlight: #ccff00;
  --track-color: #42524f;
  --zone-color: #42524f;
  background-color: #252c30;
  color: #eee;
}

button {
  background-color: #eee;
  border: 1px solid #888;
  color: black;
  height: 44px;
  width: 44px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  font-weight: bolder;
}

.dark button {
  /* This will be inverted */
  background-color: #c3b7b5;
}

button.depressed {
  background-color: #0a0;
  color: white;
}

.dark button.depressed {
  /* This will be inverted */
  background-color: #b3b;
}

button:focus {
  outline: 0;
}

button#tb-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#lr-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#bom-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-grouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-ungrouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-netlist-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}

button#copy {
  background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
  background-position: 6px 6px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  border-radius: 6px;
  height: 40px;
  width: 40px;
  margin: 10px 5px;
}

button#copy:active {
  box-shadow: inset 0px 0px 5px #6c6c6c;
}

textarea.clipboard-temp {
  position: fixed;
  top: 0;
  left: 0;
  width: 2em;
  height: 2em;
  padding: 0;
  border: None;
  outline: None;
  box-shadow: None;
  background: transparent;
}

.left-most-button {
  border-right: 0;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.middle-button {
  border-right: 0;
}

.right-most-button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.button-container {
  font-size: 0;
  margin: 10px 10px 10px 0px;
}

.dark .button-container {
  filter: invert(1);
}

.button-container button {
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

@media print {
  .hideonprint {
    display: none;
  }
}

canvas {
  cursor: crosshair;
}

canvas:active {
  cursor: grabbing;
}

.fileinfo {
  width: 100%;
  max-width: 1000px;
  border: none;
  padding: 5px;
}

.fileinfo .title {
  font-size: 20pt;
  font-weight: bold;
}

.fileinfo td {
  overflow: hidden;
  white-space: nowrap;
  max-width: 1px;
  width: 50%;
  text-overflow: ellipsis;
}

.bom {
  border-collapse: collapse;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 10pt;
  table-layout: fixed;
  width: 100%;
  margin-top: 1px;
  position: relative;
}

.bom th,
.bom td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

.dark .bom th,
.dark .bom td {
  border: 1px solid #777;
}

.bom th {
  background-color: #CCCCCC;
  background-clip: padding-box;
}

.dark .bom th {
  background-color: #3b4749;
}

.bom tr.highlighted:nth-child(n) {
  background-color: #cfc;
}

.dark .bom tr.highlighted:nth-child(n) {
  background-color: #226022;
}

.bom tr:nth-child(even) {
  background-color: #f2f2f2;
}

.dark .bom tr:nth-child(even) {
  background-color: #313b40;
}

.bom tr.checked {
  color: #1cb53d;
}

.dark .bom tr.checked {
  color: #2cce54;
}

.bom tr {
  transition: background-color 0.2s;
}

.bom .numCol {
  width: 30px;
}

.bom .value {
  width: 15%;
}

.bom .quantity {
  width: 65px;
}

.bom th .sortmark {
  position: absolute;
  right: 1px;
  top: 1px;
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #221 transparent;
  transform-origin: 50% 85%;
  transition: opacity 0.2s, transform 0.4s;
}

.dark .bom th .sortmark {
  filter: invert(1);
}

.bom th .sortmark.none {
  opacity: 0;
}

.bom th .sortmark.desc {
  transform: rotate(180deg);
}

.bom th:hover .sortmark.none {
  opacity: 0.5;
}

.bom .bom-checkbox {
  width: 30px;
  position: relative;
  user-select: none;
  -moz-user-select: none;
}

.bom .bom-checkbox:before {
  content: "";
  position: absolute;
  border-width: 15px;
  border-style: solid;
  border-color: #51829f transparent transparent transparent;
  visibility: hidden;
  top: -15px;
}

.bom .bom-checkbox:after {
  content: "Double click to set/unset all";
  position: absolute;
  color: white;
  top: -35px;
  left: -26px;
  background: #51829f;
  padding: 5px 15px;
  border-radius: 8px;
  white-space: nowrap;
  visibility: hidden;
}

.bom .bom-checkbox:hover:before,
.bom .bom-checkbox:hover:after {
  visibility: visible;
  transition: visibility 0.2s linear 1s;
}

.split {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: inherit;
}

.split.split-horizontal,
.gutter.gutter-horizontal {
  height: 100%;
  float: left;
}

.gutter {
  background-color: #ddd;
  background-repeat: no-repeat;
  background-position: 50%;
  transition: background-color 0.3s;
}

.dark .gutter {
  background-color: #777;
}

.gutter.gutter-horizontal {
  background-image: url('');
  cursor: ew-resize;
  width: 5px;
}

.gutter.gutter-vertical {
  background-image: url('');
  cursor: ns-resize;
  height: 5px;
}

.searchbox {
  float: left;
  height: 40px;
  margin: 10px 5px;
  padding: 12px 32px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 18px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 6px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  background-image: url('');
  background-position: 10px 10px;
  background-repeat: no-repeat;
}

.dark .searchbox {
  background-color: #111;
  color: #eee;
}

.searchbox::placeholder {
  color: #ccc;
}

.dark .searchbox::placeholder {
  color: #666;
}

.filter {
  width: calc(60% - 64px);
}

.reflookup {
  width: calc(40% - 10px);
}

input[type=text]:focus {
  background-color: white;
  border: 1px solid #333;
}

.dark input[type=text]:focus {
  background-color: #333;
  border: 1px solid #ccc;
}

mark.highlight {
  background-color: #5050ff;
  color: #fff;
  padding: 2px;
  border-radius: 6px;
}

.dark mark.highlight {
  background-color: #76a6da;
  color: #111;
}

.menubtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
}

.statsbtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.iobtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.visbtn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  padding: 15px;
}

#vismenu-content {
  left: 0px;
  font-family: Verdana, sans-serif;
}

.dark .statsbtn,
.dark .savebtn,
.dark .menubtn,
.dark .iobtn,
.dark .visbtn {
  filter: invert(1);
}

.flexbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.savebtn {
  background-color: #d6d6d6;
  width: auto;
  height: 30px;
  flex-grow: 1;
  margin: 5px;
  border-radius: 4px;
}

.savebtn:active {
  background-color: #0a0;
  color: white;
}

.dark .savebtn:active {
  /* This will be inverted */
  background-color: #b3b;
}

.stats {
  border-collapse: collapse;
  font-size: 12pt;
  table-layout: fixed;
  width: 100%;
  min-width: 450px;
}

.dark .stats td {
  border: 1px solid #bbb;
}

.stats td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

#checkbox-stats div {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#checkbox-stats .bar {
  background-color: rgba(28, 251, 0, 0.6);
}

.menu {
  position: relative;
  display: inline-block;
  margin: 10px 10px 10px 0px;
}

.menu-content {
  font-size: 12pt !important;
  text-align: left !important;
  font-weight: normal !important;
  display: none;
  position: absolute;
  background-color: white;
  right: 0;
  min-width: 300px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 100;
  padding: 8px;
}

.dark .menu-content {
  background-color: #111;
}

.menu:hover .menu-content {
  display: block;
}

.menu:hover .menubtn,
.menu:hover .iobtn,
.menu:hover .statsbtn {
  background-color: #eee;
}

.menu-label {
  display: inline-block;
  padding: 8px;
  border: 1px solid #ccc;
  border-top: 0;
  width: calc(100% - 18px);
}

.menu-label-top {
  border-top: 1px solid #ccc;
}

.menu-textbox {
  float: left;
  height: 24px;
  margin: 10px 5px;
  padding: 5px 5px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 14px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  width: calc(100% - 10px);
}

.menu-textbox.invalid,
.dark .menu-textbox.invalid {
  color: red;
}

.dark .menu-textbox {
  background-color: #222;
  color: #eee;
}

.radio-container {
  margin: 4px;
}

.topmostdiv {
  width: 100%;
  height: 100%;
  background-color: white;
  transition: background-color 0.3s;
}

#top {
  height: 78px;
  border-bottom: 2px solid black;
}

.dark #top {
  border-bottom: 2px solid #ccc;
}

#dbg {
  display: block;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #aaa;
}

::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  margin: 3px 0;
  padding: 0;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  border-radius: 3px;
}

.slider:hover {
  opacity: 1;
}

.slider:focus {
  outline: none;
}

.slider::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
  border: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin-top: -4px;
}

.dark .slider::-webkit-slider-thumb {
  background: #3d3;
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
}

.slider::-moz-range-track {
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
}

.dark .slider::-moz-range-thumb {
  background: #3d3;
}

.slider::-ms-track {
  width: 100%;
  height: 8px;
  border-width: 3px 0;
  background: transparent;
  border-color: transparent;
  color: transparent;
  transition: opacity .2s;
}

.slider::-ms-fill-lower {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-fill-upper {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin: 0;
}

.shameless-plug {
  font-size: 0.8em;
  text-align: center;
  display: block;
}

a {
  color: #0278a4;
}

.dark a {
  color: #00b9fd;
}

#frontcanvas,
#backcanvas {
  touch-action: none;
}

.placeholder {
  border: 1px dashed #9f9fda !important;
  background-color: #edf2f7 !important;
}

.dragging {
  z-index: 999;
}

.dark .dragging>table>tbody>tr {
  background-color: #252c30;
}

.dark .placeholder {
  filter: invert(1);
}

.column-spacer {
  top: 0;
  left: 0;
  width: calc(100% - 4px);
  position: absolute;
  cursor: pointer;
  user-select: none;
  height: 100%;
}

.column-width-handle {
  top: 0;
  right: 0;
  width: 4px;
  position: absolute;
  cursor: col-resize;
  user-select: none;
  height: 100%;
}

.column-width-handle:hover {
  background-color: #4f99bd;
}

.help-link {
  border: 1px solid #0278a4;
  padding-inline: 0.3rem;
  border-radius: 3px;
  cursor: pointer;
}

.dark .help-link {
  border: 1px solid #00b9fd;
}


  </style>
  <script type="text/javascript" >
///////////////////////////////////////////////
/*
  Split.js - v1.3.5
  MIT License
  https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});

///////////////////////////////////////////////

///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////

///////////////////////////////////////////////
/*!
 * PEP v0.4.3 | https://github.com/jquery/PEP
 * Copyright jQuery Foundation and other contributors | http://jquery.org/license
 */
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});

///////////////////////////////////////////////

///////////////////////////////////////////////
var config = {"dark_mode": false, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": false, "redraw_on_drag": true, "board_rotation": 0.0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
///////////////////////////////////////////////

///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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OWvGawlrvNrFa1agRWsm8VZrIos2a/orpmuSDpxgCOg6Do1rSmDDES1rhmsnEfxr68jNaxgtrBA9a5AtfWsCkYvNgqBta9od7mDUIO5ghZC34nQ2k2s6qp2r5vFSa+NrOfHxa3/o3JAShRxa6mtVayVrvgqba5rxuF16a2M4uWuHsLtrh2vSkGtrQSFHayRQ52vlaxqQ12tba6prLKsRvWlE/Wu4zUgMDWuuzRJrHRF5zW8rX2sJnUu6L2uxJg5RzZgpWClrX2vQem9rv2u8Ew4YE2sKhHnQVhRolvq68OvLa3DrcxOa8StrcOiysJzwGaMQbWfGGuaP5HQIOOv1isNIMwA8CxTyb3KmsHjroCjbMdpGstAk6/DkgbCVyGMAQOITzRKgNOsfcHTrMIB/1tywlOuLhEFLROtdGhzrARgAbbjrryOb6g9abOu9sILrHZiliCLrzOtNmDLr/OvAmlLrqoqnpLLrgxzlCKrriutEXUvQGus/mk9QM7i66xLrfrA667JwprD66+YYanDJmkTw9fDhwI8Iwutm67jqEAPC61rrAMpL0KgoQUsO6wJk+Sa4QTuG1Tg26zCACXDz8F7re/JgHXhqcOj+6/by5OsasObrkeuh69ZqrXJu69pzQesswDmjhOtW68DIaA3061ejyCYs46Ao2esYRhnLmeswgAdY0nC56+xYCauPOkpI3fj06whQOeuNoyzr5qMV6kXri4RBCMxQ6J346+Nuvuu6WLpIZbp0faRdiNDt62Lr4ojp66erzesdmFUCpev1602YE+su63LaY+sniq3qg+sXildGf+ioKJOKGwiDkDXwBusCoCvrGctpKdajTYg4KKZk0+scOmHrriv76yqgqF1H6wbrl+tG6wSQaSlr69EIW+ve65nYlevAyA/rteub65n9oPCsprPr4CYP6yXrzFDP6+XrcetfaobQD+v564vQwBsNY784Z+t3yDtCWet1ZMFwSKCtfO1yaetv622dCBvSQFHritAGMfjr1OsF696qWBsh68gbi3D464HrhBvwG4pU9Otc686IKBsd6z7rf+vU3cQbnxj26+vq9BtD687rI+u2nSwbH5gy61VIHBvy66fr8eumSLwbhut0G2Qbm+q2cHfrpmTtOCrrnDjVSHQT8hsyG9gBQhvSJszoFutScEwbJZr7UELrqF2KGzfrWAwqG7ob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ANJn2KeNJ2ZneYpHpwxnJ6dnp7hg1mfJp+xnN6dHJ8Kn3GdDJ7xneaf8Z2+n7mjFpyJnbDSvJ+Znv6eqpwtkGGd/J/unRQDyZ7EnYGfARgiIKmfKakAy56qh8I8mcGc9p0MnSGfdUDDjjuqIsuXQJDoYZ+5nrqc4ZzGnPmf4ZzZnhGc6Z2VnemcxJs/k3GrVZ8Vnxmd7px5nCyeJZ9OnlmeMZ8xn/mesZ4EwKafXp2mnnGehZw+nPGc5pxKnUWeFp++nnkBVZ0syh6M/p60nkmcpZ9JnaWeDZ4CnCmfZZx3GKLh5Z+hA6EiBRKHwZpDdpwhnHWcOZ+QKqGffyNmaUycAZ5hn6WdDZ15nFmcrJ3GnAWcLp9Nndmf3ZyRna6fiQORnX80vZ3VnE6efZ8Cq3mejZ75nXKeTZ4unHGchZ/endNCPp8Uny2dSp6tnFrLCZ5tnM6TbZx8nf6dSZ29nB2d1p6BnjacdxoAo52fFxyan12clZ3dnfacPZzbGTzytsGaQkOemZ9DnVWqw5z9nNoCI5wDn/qf2Z8DnjmeqChHCdOf9Z9RnH2cE52yn8OeJpzyn/2dBZ7NnKOeZp+IA6OfPp6+n2OftgLFneOdiZ19nSWf/p78naROHZ5lnU2cU5yAAcHIQZ8knqScQ7dYA5XJRgLdn2mfEZxOqpGcc6OUnSHJRgOznkufRpyNnPOctZ4FnbWeO5xjnwuc4Fh+jSxo7p29n9WfYZ3RnTWdw5+Gg42e+5/Ln/SfI53enyuftZ62nGOd8Z1jngmcc6E8nOXKtkAlnuuc7Z0Tne2ck54bnZOfHZ6bnB1KJJ5bnz8CYEDbnoeeaZ/BnDueC507nIOcoZ/GMbudh5xGnHOdS5x6nv2d857ZnAudA5y3nwuc0pwGw9eeuZ+HnUOc953hnHKenpwjncudsZ4nnwWfJ52Fnaedq5ytnWedC0rjn/HJ559Pnu2cn0KlnpefAZ/WnFefRKtTnxqdYQLbn9OdN50Pngef6ZyznXvAOpK9nXeee541n3ufxQFZn/ef+583nd+clcg0NY+fi3eLn72eHZ17nyycf52Nnc+ey5wRnqafgAHNnqOdLiKrnmOcCZw8nMWczAEpsRpO756AXsjBF5wfn+2dH53JnJ+cJJ/qn1ef5Z1okOKiZJ1pn7QBEZz/nzudlJxyQC7DL+EAXEee0Z1OnYBd1AJ/nC+dTZwPn1Be357QXu+jjJ+xYz1Ae5yAXb+dsF7KAs6dMZ5AXLGecF0jny+dcZwtn4WdLZxnnyBfn6DnnFPK2knvnOBeRsIfnsmcZZ4QXwEY7eGUYJBcXZ7XnYgDkF9fnVBep5yunQuePZ+3nAvJCF25nU+dYF73nvOcyF/znPBeM5zYXbypg54IXnecmZ6/nUefv5+wXEBd+Z/Hni+cwF+mn82do54tnT6dIF9FnW+e7kLryPpKaF8lnuBcl57oX3lL6Fx3GeMgmAOfnamdmF4wX5qeN55YXAed8FwjABme+F0wXTheiF9LnYRdcF9/nvBet505nD8aFF8/n/hciF4EXYhfNABIXcedep24XCuewF0rnq+cSwOnnkWeZ5ygXmudoF0kXGhfOF1NnqRfaF3gXGRdHZ1lnp+fKZ8YXIOvdgGYXPHsWF0wAVhflZ5ZwrufP8jkmwhcNZ50XtRd9F9AXS6eNF0HnG6c/68cXjhfd57MXzWez56EXFxetZxEXcBcp54gXyhfxFx9wAIf98lwg+ecw57hn++cLF+kXtafH5+TnCSe5Z+sX0Gc259sXDeelZ54Xw+e2F9mMPEcOF5Pnjxc1Fy4XdReLp4DnyJe/5zEqPhdHFxiXL+cdF6wX5xfxp1IXE2f9F0vniucr5woXa+dxFxrn4kDb51kmmZRAl1znIJdaFwXwOhcQlwQXUJcGF2dn6xcX5/CX2FCIlwzn1hcol8zn9qckl34XA2enFxSXOJdvF37nQJqlF00XIucPxgiXE+dkl4qXw2ddFzwAPRfUl7iX02dJ5/IX0ReKF7EXPxcsl4HAUxcAlzrnwJd658TnBudLF8bnimdm5+CquRfrF2kn1gDJsEko9uclFzQXGpcRhNEofpdXkCcXkedKlzPnc6e0l2qXQZc3FwIXni1JKBGXLBf6l5SXkhevFzGXlxdml1EXCBcxF6MXL6cb5xMXfxcgh8UKiEspF/rnNaf/J5CX5ecgp/Vo1Odwl2IAYZc7Fx4XUpeEl9SnT2cMo+GXDxcBF1GXzxdZl+8XVxcEl2UXIe3HU0mX3ZeYl72XaZfKl1SXmZd/Z+EXM2eDFwyXFpdMl9aXm+esl4kXZZcOl1yXTpfF5y6X/Jd6F4KXHcYiil6X4KdGp/kXNjpBUC2XexedZ8GnFRfjl/KXEufkl9OX0Zfzl/UXcZfXFzaqBruXI4+XwBd6lwXnBpcoAEaXc5df5x8XQxeMlyMX6+fjF0WndpcCiuWXsxegl7yXixcHl5kXR5dm5+/dp5eGpydqmxc2OoTdRRdIl22XI5d1iPQXXyO/l8wXnmeOl0EX4hd957GXQ5eEV8GXtxekV1UXWJdnFzOXGZfz59mXche5l6Kn+ZdQVyoXa2ehlzcE25fnWhJnPJd36HyX1ZcCl7WXwEbUxkYXZ5c151Cn9yPXl+qXI+edl0pXzFdTlwBXlJdvl3iXg+fDlxqXo+dMVzqX7Rf/l5RXgFfAVxxXg5c5l/AXPFeWlwWX6ufrl9lAbJd9sMIUnJciV9yX8xdIV+CXkleHl9JXx5fNpyKXF5fqV/hXkpf7F3eXD+frimznPZfPl1pXM5c6V+4XN5dM58Gn/+dGV20XCpeRly+X/ZfsV1AXVldcVzZXWae8V8yXjlfz4LBX8oSuVxWXzpdVl5LnbpcnZ+hX2qjU5z6XTZfg4HbnlBe7FypXFWckVzdK4XAplxRXO5dUV90XNFeXF/iX9FcJl9ojXVfu59FXpld9V+ZXIReWV6qXi5eRF/lXKueFV2uXxZe9sP8XokqYF9iXcxeVlz3grpdZF+hXaxfyV5CngUTA8OFwAZdtV/GXqJcNTWdXE1eTlzFXZlfaV6BXdFdhV2RnY5f/Td1Xk1cZV7FX0ZfZV9IXnFf0l+aXeZd2V3xXvxdOV5uXm1fCV8c6oleeV+JXyFc+V6hXflfoVzCXx1dbBygzNjrNV8pXV1cyl0pst1dkV9UXrFevl89Xw1evV7anKVfjV/jXLFd9lzHnLxdzVwnnYFfLl8DXq5djF/xXqBeitAVKALJuV9DXHle7V4BnKFfLFybnIKfCl6jXGxdaJLKwYlAXV62XpNd0F1v6nbBiUD1XnOfuV9HnPucql/TXL1e3l67ojFeDGPLXX1eplz9XWVe9FwOX81fWV18XK1cs12DXgYqllxlA7uRc1yrIu5dpF/uXCNcC1+6XAtJU57CXl2e+l/toEpc35/pXqld2F+MYOtf3V1NXStf9V4aXg1eDlyTXGtcWssSXAdeU15pXj1dsV4bX8VcDF4tXptcg10VXa1eAbctHqxLHNBVXe5dVV0bnB1dWqvWXgVfo1+LXWNeflzjXIQpe18ZX6Vd61wnXRNe0V5HXSVcNMuTXsdcaVw9X01fpl0nXz1cm18MXEWeFl9BXy6ha59bXudcIV2JXHNASV9VXB1dNgMLXWFfggLEENueztkCArVdS19mK9AAmAERXp/h28DXXNKjc5zJQngA3p1hgb5dgWJAAx9eOF1XAACruaj3XnBfEAF0n/ABkgHynVRf9LEU9VhjVhLlUd9dQAA/XCigfYCAAn9cP19AAM4DAgOUAzjDq14RKG9exF8Ln29eu8OFwSEj71w8Ah9ezZ8fXk2en1+ONqJCQ55fXUqN1F//Xj9cpp8/Xz6Sv18g964C5F/fXZIA/1+QwODeAN1ONIDcIgGA3DyoQN+2X7mjQN0mKZpBwN99nB9eAgGfX6DcoN0QnSDfoNxfXWEBX19g3pDdP17XX46cv1wA9b9cM6CQ3X9dkN0Fgv9eUN5ONwDcmgKA3zdf0N4CAW9eL1z+Xg0jwN6gIiDewF8g3t9e8NwY3/DeT55g3tKNG18YYIjd4N2I39ScSNwbUUjfEN2UYpDfkNzI3ADdKNzQ3WgB0NxOqDDeaNzhXdhs5Jmw3ytccN0fX3DdGN+gnJjd4ABg3gjdYN6rXzjeyN6I3aVfiNwQ3kjdENxUUODeuN/E37jdAN5433jd0ABo3GpfMN+eNi3hBN6HXZQChN1E3PDcRN1w3UTcCN1hnFjcn19Y3eyf4N1BghDd+PdYYjpQZN/I3FDciNx43Kje0N2o3PjcFN1A3WjeP51GApTcGl+U3fDeVN+E3NT01N9E39TfC6403CTc2N0k3djcpNw43aTedNy433TduN4/XfTdqGgM3eldtl743hTejN1gmL2cTN18SUzeRNyfXxjfzN3U3OKcNNyg3TTfBgI4X9jcd0pQ4ezeZN3/XvTc5N/03XjeDN/k3m9dnN/43GmdoaLo3biCcN2g3Mzc8QKg359dmNzE3zze31683NoDvNxs3nzcNPd83uzdZN/s3/zeHN4C3xzdFJ6c3Izdgt2ane9fsNwg30LeGN3C39zcwtws3TzdLNy83KzfNN7Y3RT04p5s37Tfv1/JUXTfdMD03CTcHN8eIXjd91xBX3AAMNw5XmdfyAHpTl0AowAg69tdgl3UninRiADBY0JIz138Abtci16i5ZBfAQxXXBJcktyGI5zd50vLg1qjBN1S3FTd3N9U39LePNyPq19fGl3E3vzcst283k+cfN2aQXze4tz83ijf4t0K3eTf6t2nwhrdeGIYYZTf6N/M3VTdzN1a3iLeLN0IXzLcAN6s3kOcut4436Tc7N3y3ezdUN8o3BLc+t8M3Brf+N6HwYlAmt0G31LdhN7S3lrcItxGn5jdMtyi3jrdot863GLeut1i37rc4tw632TfUNwC3Gbcgt0HnRTflcrbX1yjXN8G39Leht74wDzcRt4y3UbcVtzG3rLdrN+y3Dj0Jt9s3sjcet383zbfpt0C3vrfn6B23nJSBt5M3vbc0t2owdLclt7MnZbcjt3C3qLctNxy3mLcdNx/XSbe4gPy3Tbdpt963S7eZt3632bcpvmho3beOkjc3IbezNwO34belt0i35beHt5W3x7dTt1s357eztw23nrcLt7e3RLfr1/e3K7fnN36XitdV+Pm35rf9t60wg7fft5G3VSfRt7g347dxtzW307fAd9/XoHfztze3ADCtt5A3WbfwfW8lz7c1KD23Bbewt9u3xbemN2h3w7cYd6O3WHdOtxGn8bdAdzy3F7e5wFe3eLfgdyR3d7dtt+R3dvDMMuu3NHdIdx+3KHdft3u3P7cHt2owR7dstwA9J7e1t2e33Hcgd8m3uLept7k3Qndkdw+38H2MCDSoL7eTsJu3hbf0d2G3u7eMp/u3LHd/t2O37HezJ5x3XLfSN/W3mneNt/x3xHegNyK3K5cjF+K3RZfn6A6AeUDzwEhIXKDYF7DXk9fSZ0q3nKCBGDVXpuedQCXXItfdOFdny9eS14lX6jfCd28q/UBy1wpIkLcpYLR3FrcWd4x3snfod7HndreWN1p3sbfot603qTdOd043bndztwK3XreCd5B34DfQd9SnmXcU1zo3lLd6N3l3yHd5d9a3Qjf2t5Q3FXfVt1V3nLfBS2p32Leud2B3HndHN2vXLXfpd8sqphcsN9l3XXdQt5J3RbcFd7U3Q7c2t8I3/7dKd45343fct5N3l7cpt4K3TXdzd2l3eneLd1CnXZcrd6a33Xfrd+Z3n7eWd+On1ne7d3Z3Vbccd7h3XHfHd7x3p3eNd6o3zXeXd4w3hCo3d4uwz1BXN6+3pnd0d+EwO7eFd1Z3cnc2dwp3e3cTt8p3gHc1d4m3Gncnd1p3Z3eA9xd3QzcLd213S3fFNxD3+aA5d2+3fbdSd31323cDd2V3bneJNzh3o3ent0d3LnfY9/T3uPezd6l3BPdXd0T3YPfj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"))
///////////////////////////////////////////////

///////////////////////////////////////////////
/* Utility functions */

var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
  pcbdata.metadata.revision + '__#';
var storage;

function initStorage(key) {
  try {
    window.localStorage.getItem("blank");
    storage = window.localStorage;
  } catch (e) {
    // localStorage not available
  }
  if (!storage) {
    try {
      window.sessionStorage.getItem("blank");
      storage = window.sessionStorage;
    } catch (e) {
      // sessionStorage also not available
    }
  }
}

function readStorage(key) {
  if (storage) {
    return storage.getItem(storagePrefix + key);
  } else {
    return null;
  }
}

function writeStorage(key, value) {
  if (storage) {
    storage.setItem(storagePrefix + key, value);
  }
}

function fancyDblClickHandler(el, onsingle, ondouble) {
  return function() {
    if (el.getAttribute("data-dblclick") == null) {
      el.setAttribute("data-dblclick", 1);
      setTimeout(function() {
        if (el.getAttribute("data-dblclick") == 1) {
          onsingle();
        }
        el.removeAttribute("data-dblclick");
      }, 200);
    } else {
      el.removeAttribute("data-dblclick");
      ondouble();
    }
  }
}

function smoothScrollToRow(rowid) {
  document.getElementById(rowid).scrollIntoView({
    behavior: "smooth",
    block: "center",
    inline: "nearest"
  });
}

function focusInputField(input) {
  input.scrollIntoView(false);
  input.focus();
  input.select();
}

function saveBomTable(output) {
  var text = '';
  for (var node of bomhead.childNodes[0].childNodes) {
    if (node.firstChild) {
      text += (output == 'csv' ? `"${node.firstChild.nodeValue}"` : node.firstChild.nodeValue);
    }
    if (node != bomhead.childNodes[0].lastChild) {
      text += (output == 'csv' ? ',' : '\t');
    }
  }
  text += '\n';
  for (var row of bombody.childNodes) {
    for (var cell of row.childNodes) {
      let val = '';
      for (var node of cell.childNodes) {
        if (node.nodeName == "INPUT") {
          if (node.checked) {
            val += '✓';
          }
        } else if ((node.nodeName == "MARK") || (node.nodeName == "A")) {
          val += node.firstChild.nodeValue;
        } else {
          val += node.nodeValue;
        }
      }
      if (output == 'csv') {
        val = val.replace(/\"/g, '\"\"'); // pair of double-quote characters
        if (isNumeric(val)) {
          val = +val;                     // use number
        } else {
          val = `"${val}"`;               // enclosed within double-quote
        }
      }
      text += val;
      if (cell != row.lastChild) {
        text += (output == 'csv' ? ',' : '\t');
      }
    }
    text += '\n';
  }

  if (output != 'clipboard') {
    // To file: csv or txt
    var blob = new Blob([text], {
      type: `text/${output}`
    });
    saveFile(`${pcbdata.metadata.title}.${output}`, blob);
  } else {
    // To clipboard
    var textArea = document.createElement("textarea");
    textArea.classList.add('clipboard-temp');
    textArea.value = text;

    document.body.appendChild(textArea);
    textArea.focus();
    textArea.select();

    try {
      if (document.execCommand('copy')) {
        console.log('Bom copied to clipboard.');
      }
    } catch (err) {
      console.log('Can not copy to clipboard.');
    }

    document.body.removeChild(textArea);
  }
}

function isNumeric(str) {
  /* https://stackoverflow.com/a/175787 */
  return (typeof str != "string" ? false : !isNaN(str) && !isNaN(parseFloat(str)));
}

function removeGutterNode(node) {
  for (var i = 0; i < node.childNodes.length; i++) {
    if (node.childNodes[i].classList &&
      node.childNodes[i].classList.contains("gutter")) {
      node.removeChild(node.childNodes[i]);
      break;
    }
  }
}

function cleanGutters() {
  removeGutterNode(document.getElementById("bot"));
  removeGutterNode(document.getElementById("canvasdiv"));
}

var units = {
  prefixes: {
    giga: ["G", "g", "giga", "Giga", "GIGA"],
    mega: ["M", "mega", "Mega", "MEGA"],
    kilo: ["K", "k", "kilo", "Kilo", "KILO"],
    milli: ["m", "milli", "Milli", "MILLI"],
    micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
    nano: ["N", "n", "nano", "Nano", "NANO"],
    pico: ["P", "p", "pico", "Pico", "PICO"],
  },
  unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
  unitsLong: [
    "OHM", "Ohm", "ohm", "ohms",
    "FARAD", "Farad", "farad",
    "HENRY", "Henry", "henry"
  ],
  getMultiplier: function(s) {
    if (this.prefixes.giga.includes(s)) return 1e9;
    if (this.prefixes.mega.includes(s)) return 1e6;
    if (this.prefixes.kilo.includes(s)) return 1e3;
    if (this.prefixes.milli.includes(s)) return 1e-3;
    if (this.prefixes.micro.includes(s)) return 1e-6;
    if (this.prefixes.nano.includes(s)) return 1e-9;
    if (this.prefixes.pico.includes(s)) return 1e-12;
    return 1;
  },
  valueRegex: null,
}

function initUtils() {
  var allPrefixes = units.prefixes.giga
    .concat(units.prefixes.mega)
    .concat(units.prefixes.kilo)
    .concat(units.prefixes.milli)
    .concat(units.prefixes.micro)
    .concat(units.prefixes.nano)
    .concat(units.prefixes.pico);
  var allUnits = units.unitsShort.concat(units.unitsLong);
  units.valueRegex = new RegExp("^([0-9\.]+)" +
    "\\s*(" + allPrefixes.join("|") + ")?" +
    "(" + allUnits.join("|") + ")?" +
    "(\\b.*)?$", "");
  units.valueAltRegex = new RegExp("^([0-9]*)" +
    "(" + units.unitsShort.join("|") + ")?" +
    "([GgMmKkUuNnPp])?" +
    "([0-9]*)" +
    "(\\b.*)?$", "");
  if (config.fields.includes("Value")) {
    var index = config.fields.indexOf("Value");
    pcbdata.bom["parsedValues"] = {};
    for (var id in pcbdata.bom.fields) {
      pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index])
    }
  }
}

function parseValue(val, ref) {
  var inferUnit = (unit, ref) => {
    if (unit) {
      unit = unit.toLowerCase();
      if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
        unit = 'r';
      }
      unit = unit[0];
    } else {
      ref = /^([a-z]+)\d+$/i.exec(ref);
      if (ref) {
        ref = ref[1].toLowerCase();
        if (ref == "c") unit = 'f';
        else if (ref == "l") unit = 'h';
        else if (ref == "r" || ref == "rv") unit = 'r';
        else unit = null;
      }
    }
    return unit;
  };
  val = val.replace(/,/g, "");
  var match = units.valueRegex.exec(val);
  var unit;
  if (match) {
    val = parseFloat(match[1]);
    if (match[2]) {
      val = val * units.getMultiplier(match[2]);
    }
    unit = inferUnit(match[3], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[4],
    }
  }
  match = units.valueAltRegex.exec(val);
  if (match && (match[1] || match[4])) {
    val = parseFloat(match[1] + "." + match[4]);
    if (match[3]) {
      val = val * units.getMultiplier(match[3]);
    }
    unit = inferUnit(match[2], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[5],
    }
  }
  return null;
}

function valueCompare(a, b, stra, strb) {
  if (a === null && b === null) {
    // Failed to parse both values, compare them as strings.
    if (stra != strb) return stra > strb ? 1 : -1;
    else return 0;
  } else if (a === null) {
    return 1;
  } else if (b === null) {
    return -1;
  } else {
    if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
    else if (a.val != b.val) return a.val > b.val ? 1 : -1;
    else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
    else return 0;
  }
}

function validateSaveImgDimension(element) {
  var valid = false;
  var intValue = 0;
  if (/^[1-9]\d*$/.test(element.value)) {
    intValue = parseInt(element.value);
    if (intValue <= 16000) {
      valid = true;
    }
  }
  if (valid) {
    element.classList.remove("invalid");
  } else {
    element.classList.add("invalid");
  }
  return intValue;
}

function saveImage(layer) {
  var width = validateSaveImgDimension(document.getElementById("render-save-width"));
  var height = validateSaveImgDimension(document.getElementById("render-save-height"));
  var bgcolor = null;
  if (!document.getElementById("render-save-transparent").checked) {
    var style = getComputedStyle(topmostdiv);
    bgcolor = style.getPropertyValue("background-color");
  }
  if (!width || !height) return;

  // Prepare image
  var canvas = document.createElement("canvas");
  var layerdict = {
    transform: {
      x: 0,
      y: 0,
      s: 1,
      panx: 0,
      pany: 0,
      zoom: 1,
    },
    bg: canvas,
    fab: canvas,
    silk: canvas,
    highlight: canvas,
    layer: layer,
  }
  // Do the rendering
  recalcLayerScale(layerdict, width, height);
  prepareLayer(layerdict);
  clearCanvas(canvas, bgcolor);
  drawBackground(layerdict, false);
  drawHighlightsOnLayer(layerdict, false);

  // Save image
  var imgdata = canvas.toDataURL("image/png");

  var filename = pcbdata.metadata.title;
  if (pcbdata.metadata.revision) {
    filename += `.${pcbdata.metadata.revision}`;
  }
  filename += `.${layer}.png`;
  saveFile(filename, dataURLtoBlob(imgdata));
}

function saveSettings() {
  var data = {
    type: "InteractiveHtmlBom settings",
    version: 1,
    pcbmetadata: pcbdata.metadata,
    settings: settings,
  }
  var blob = new Blob([JSON.stringify(data, null, 4)], {
    type: "application/json"
  });
  saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}

function loadSettings() {
  var input = document.createElement("input");
  input.type = "file";
  input.accept = ".settings.json";
  input.onchange = function(e) {
    var file = e.target.files[0];
    var reader = new FileReader();
    reader.onload = readerEvent => {
      var content = readerEvent.target.result;
      var newSettings;
      try {
        newSettings = JSON.parse(content);
      } catch (e) {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      if (newSettings.type != "InteractiveHtmlBom settings") {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
      if (metadataMatches) {
        for (var k in pcbdata.metadata) {
          if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
            metadataMatches = false;
          }
        }
      }
      if (!metadataMatches) {
        var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
        var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
        if (!confirm(
            `Settins file metadata does not match current metadata.\n\n` +
            `Page metadata:\n${currentMetadata}\n\n` +
            `Settings file metadata:\n${fileMetadata}\n\n` +
            `Press OK if you would like to import settings anyway.`)) {
          return;
        }
      }
      overwriteSettings(newSettings.settings);
    }
    reader.readAsText(file, 'UTF-8');
  }
  input.click();
}

function overwriteSettings(newSettings) {
  initDone = false;
  Object.assign(settings, newSettings);
  writeStorage("bomlayout", settings.bomlayout);
  writeStorage("bommode", settings.bommode);
  writeStorage("canvaslayout", settings.canvaslayout);
  writeStorage("bomCheckboxes", settings.checkboxes.join(","));
  document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
  for (var checkbox of settings.checkboxes) {
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
  }
  writeStorage("markWhenChecked", settings.markWhenChecked);
  padsVisible(settings.renderPads);
  document.getElementById("padsCheckbox").checked = settings.renderPads;
  fabricationVisible(settings.renderFabrication);
  document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
  silkscreenVisible(settings.renderSilkscreen);
  document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
  referencesVisible(settings.renderReferences);
  document.getElementById("referencesCheckbox").checked = settings.renderReferences;
  valuesVisible(settings.renderValues);
  document.getElementById("valuesCheckbox").checked = settings.renderValues;
  tracksVisible(settings.renderTracks);
  document.getElementById("tracksCheckbox").checked = settings.renderTracks;
  zonesVisible(settings.renderZones);
  document.getElementById("zonesCheckbox").checked = settings.renderZones;
  dnpOutline(settings.renderDnpOutline);
  document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
  setRedrawOnDrag(settings.redrawOnDrag);
  document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
  setDarkMode(settings.darkMode);
  document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
  setHighlightPin1(settings.highlightpin1);
  document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  setOffsetBackRotation(settings.offsetBackRotation);
  document.getElementById("offsetBackRotationCheckbox").checked = settings.offsetBackRotation;
  initDone = true;
  prepCheckboxes();
  changeBomLayout(settings.bomlayout);
}

function saveFile(filename, blob) {
  var link = document.createElement("a");
  var objurl = URL.createObjectURL(blob);
  link.download = filename;
  link.href = objurl;
  link.click();
}

function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], {
    type: mime
  });
}

var settings = {
  canvaslayout: "default",
  bomlayout: "default",
  bommode: "grouped",
  checkboxes: [],
  checkboxStoredRefs: {},
  darkMode: false,
  highlightpin1: false,
  redrawOnDrag: true,
  boardRotation: 0,
  offsetBackRotation: false,
  renderPads: true,
  renderReferences: true,
  renderValues: true,
  renderSilkscreen: true,
  renderFabrication: true,
  renderDnpOutline: false,
  renderTracks: true,
  renderZones: true,
  columnOrder: [],
  hiddenColumns: []
}

function initDefaults() {
  settings.bomlayout = readStorage("bomlayout");
  if (settings.bomlayout === null) {
    settings.bomlayout = config.bom_view;
  }
  if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
    settings.bomlayout = config.bom_view;
  }
  settings.bommode = readStorage("bommode");
  if (settings.bommode === null) {
    settings.bommode = "grouped";
  }
  if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
    settings.bommode = "grouped";
  }
  settings.canvaslayout = readStorage("canvaslayout");
  if (settings.canvaslayout === null) {
    settings.canvaslayout = config.layer_view;
  }
  var bomCheckboxes = readStorage("bomCheckboxes");
  if (bomCheckboxes === null) {
    bomCheckboxes = config.checkboxes;
  }
  settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
  document.getElementById("bomCheckboxes").value = bomCheckboxes;

  settings.markWhenChecked = readStorage("markWhenChecked") || "";
  populateMarkWhenCheckedOptions();

  function initBooleanSetting(storageString, def, elementId, func) {
    var b = readStorage(storageString);
    if (b === null) {
      b = def;
    } else {
      b = (b == "true");
    }
    document.getElementById(elementId).checked = b;
    func(b);
  }

  initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
  initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
  initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
  initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
  initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
  if ("tracks" in pcbdata) {
    initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
    initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
  } else {
    document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
    tracksVisible(false);
    zonesVisible(false);
  }
  initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
  initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
  initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
  initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1);

  var fields = ["checkboxes", "References"].concat(config.fields).concat(["Quantity"]);
  var hcols = JSON.parse(readStorage("hiddenColumns"));
  if (hcols === null) {
    hcols = [];
  }
  settings.hiddenColumns = hcols.filter(e => fields.includes(e));

  var cord = JSON.parse(readStorage("columnOrder"));
  if (cord === null) {
    cord = fields;
  } else {
    cord = cord.filter(e => fields.includes(e));
    if (cord.length != fields.length)
      cord = fields;
  }
  settings.columnOrder = cord;

  settings.boardRotation = readStorage("boardRotation");
  if (settings.boardRotation === null) {
    settings.boardRotation = config.board_rotation * 5;
  } else {
    settings.boardRotation = parseInt(settings.boardRotation);
  }
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  initBooleanSetting("offsetBackRotation", config.offset_back_rotation, "offsetBackRotationCheckbox", setOffsetBackRotation);
}

// Helper classes for user js callbacks.

const IBOM_EVENT_TYPES = {
  ALL: "all",
  HIGHLIGHT_EVENT: "highlightEvent",
  CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
  BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}

const EventHandler = {
  callbacks: {},
  init: function() {
    for (eventType of Object.values(IBOM_EVENT_TYPES))
      this.callbacks[eventType] = [];
  },
  registerCallback: function(eventType, callback) {
    this.callbacks[eventType].push(callback);
  },
  emitEvent: function(eventType, eventArgs) {
    event = {
      eventType: eventType,
      args: eventArgs,
    }
    var callback;
    for (callback of this.callbacks[eventType])
      callback(event);
    for (callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
      callback(event);
  }
}
EventHandler.init();

///////////////////////////////////////////////

///////////////////////////////////////////////
/* PCB rendering code */

var emptyContext2d = document.createElement("canvas").getContext("2d");

function deg2rad(deg) {
  return deg * Math.PI / 180;
}

function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
  var point = [
    linepoint[0] * text.width + offsetx,
    linepoint[1] * text.height + offsety
  ];
  // This approximates pcbnew behavior with how text tilts depending on horizontal justification
  point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
  return point;
}

function drawText(ctx, text, color) {
  if ("ref" in text && !settings.renderReferences) return;
  if ("val" in text && !settings.renderValues) return;
  ctx.save();
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  ctx.lineWidth = text.thickness;
  if ("svgpath" in text) {
    ctx.stroke(new Path2D(text.svgpath));
    ctx.restore();
    return;
  }
  if ("polygons" in text) {
    ctx.fill(getPolygonsPath(text));
    ctx.restore();
    return;
  }
  ctx.translate(...text.pos);
  ctx.translate(text.thickness * 0.5, 0);
  var angle = -text.angle;
  if (text.attr.includes("mirrored")) {
    ctx.scale(-1, 1);
    angle = -angle;
  }
  var tilt = 0;
  if (text.attr.includes("italic")) {
    tilt = 0.125;
  }
  var interline = text.height * 1.5 + text.thickness;
  var txt = text.text.split("\n");
  // KiCad ignores last empty line.
  if (txt[txt.length - 1] == '') txt.pop();
  ctx.rotate(deg2rad(angle));
  var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
  offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
  for (var i in txt) {
    var lineWidth = text.thickness + interline / 2 * tilt;
    for (var j = 0; j < txt[i].length; j++) {
      if (txt[i][j] == '\t') {
        var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
        lineWidth += fourSpaces - lineWidth % fourSpaces;
      } else {
        if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
        }
        lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
      }
    }
    var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
    var inOverbar = false;
    for (var j = 0; j < txt[i].length; j++) {
      if (config.kicad_text_formatting) {
        if (txt[i][j] == '\t') {
          var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
          offsetx += fourSpaces - offsetx % fourSpaces;
          continue;
        } else if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
          if (txt[i][j] != '~') {
            inOverbar = !inOverbar;
          }
        }
      }
      var glyph = pcbdata.font_data[txt[i][j]];
      if (inOverbar) {
        var overbarStart = [offsetx, -text.height * 1.4 + offsety];
        var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];

        if (!lastHadOverbar) {
          overbarStart[0] += text.height * 1.4 * tilt;
          lastHadOverbar = true;
        }
        ctx.beginPath();
        ctx.moveTo(...overbarStart);
        ctx.lineTo(...overbarEnd);
        ctx.stroke();
      } else {
        lastHadOverbar = false;
      }
      for (var line of glyph.l) {
        ctx.beginPath();
        ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
        for (var k = 1; k < line.length; k++) {
          ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
        }
        ctx.stroke();
      }
      offsetx += glyph.w * text.width;
    }
    offsety += interline;
  }
  ctx.restore();
}

function drawedge(ctx, scalefactor, edge, color) {
  ctx.strokeStyle = color;
  ctx.fillStyle = color;
  ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  if ("svgpath" in edge) {
    ctx.stroke(new Path2D(edge.svgpath));
  } else {
    ctx.beginPath();
    if (edge.type == "segment") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(...edge.end);
    }
    if (edge.type == "rect") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(edge.start[0], edge.end[1]);
      ctx.lineTo(...edge.end);
      ctx.lineTo(edge.end[0], edge.start[1]);
      ctx.lineTo(...edge.start);
    }
    if (edge.type == "arc") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        deg2rad(edge.startangle),
        deg2rad(edge.endangle));
    }
    if (edge.type == "circle") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        0, 2 * Math.PI);
      ctx.closePath();
    }
    if (edge.type == "curve") {
      ctx.moveTo(...edge.start);
      ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
    }
    if("filled" in edge && edge.filled)
      ctx.fill();
    else
      ctx.stroke();
  }
}

function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
  // chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
  var path = new Path2D();
  var width = size[0];
  var height = size[1];
  var x = width * -0.5;
  var y = height * -0.5;
  var chamfOffset = Math.min(width, height) * chamfratio;
  path.moveTo(x, 0);
  if (chamfpos & 4) {
    path.lineTo(x, y + height - chamfOffset);
    path.lineTo(x + chamfOffset, y + height);
    path.lineTo(0, y + height);
  } else {
    path.arcTo(x, y + height, x + width, y + height, radius);
  }
  if (chamfpos & 8) {
    path.lineTo(x + width - chamfOffset, y + height);
    path.lineTo(x + width, y + height - chamfOffset);
    path.lineTo(x + width, 0);
  } else {
    path.arcTo(x + width, y + height, x + width, y, radius);
  }
  if (chamfpos & 2) {
    path.lineTo(x + width, y + chamfOffset);
    path.lineTo(x + width - chamfOffset, y);
    path.lineTo(0, y);
  } else {
    path.arcTo(x + width, y, x, y, radius);
  }
  if (chamfpos & 1) {
    path.lineTo(x + chamfOffset, y);
    path.lineTo(x, y + chamfOffset);
    path.lineTo(x, 0);
  } else {
    path.arcTo(x, y, x, y + height, radius);
  }
  path.closePath();
  return path;
}

function getOblongPath(size) {
  return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}

function getPolygonsPath(shape) {
  if (shape.path2d) {
    return shape.path2d;
  }
  if ("svgpath" in shape) {
    shape.path2d = new Path2D(shape.svgpath);
  } else {
    var path = new Path2D();
    for (var polygon of shape.polygons) {
      path.moveTo(...polygon[0]);
      for (var i = 1; i < polygon.length; i++) {
        path.lineTo(...polygon[i]);
      }
      path.closePath();
    }
    shape.path2d = path;
  }
  return shape.path2d;
}

function drawPolygonShape(ctx, scalefactor, shape, color) {
  ctx.save();
  if (!("svgpath" in shape)) {
    ctx.translate(...shape.pos);
    ctx.rotate(deg2rad(-shape.angle));
  }
  if("filled" in shape && !shape.filled) {
    ctx.strokeStyle = color;
    ctx.lineWidth = Math.max(1 / scalefactor, shape.width);
    ctx.lineCap = "round";
    ctx.lineJoin = "round";
    ctx.stroke(getPolygonsPath(shape));
  } else {
    ctx.fillStyle = color;
    ctx.fill(getPolygonsPath(shape));
  }
  ctx.restore();
}

function drawDrawing(ctx, scalefactor, drawing, color) {
  if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) {
    drawedge(ctx, scalefactor, drawing, color);
  } else if (drawing.type == "polygon") {
    drawPolygonShape(ctx, scalefactor, drawing, color);
  } else {
    drawText(ctx, drawing, color);
  }
}

function getCirclePath(radius) {
  var path = new Path2D();
  path.arc(0, 0, radius, 0, 2 * Math.PI);
  path.closePath();
  return path;
}

function getCachedPadPath(pad) {
  if (!pad.path2d) {
    // if path2d is not set, build one and cache it on pad object
    if (pad.shape == "rect") {
      pad.path2d = new Path2D();
      pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
    } else if (pad.shape == "oval") {
      pad.path2d = getOblongPath(pad.size);
    } else if (pad.shape == "circle") {
      pad.path2d = getCirclePath(pad.size[0] / 2);
    } else if (pad.shape == "roundrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
    } else if (pad.shape == "chamfrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
    } else if (pad.shape == "custom") {
      pad.path2d = getPolygonsPath(pad);
    }
  }
  return pad.path2d;
}

function drawPad(ctx, pad, color, outline) {
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(-deg2rad(pad.angle));
  if (pad.offset) {
    ctx.translate(...pad.offset);
  }
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  var path = getCachedPadPath(pad);
  if (outline) {
    ctx.stroke(path);
  } else {
    ctx.fill(path);
  }
  ctx.restore();
}

function drawPadHole(ctx, pad, padHoleColor) {
  if (pad.type != "th") return;
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(-deg2rad(pad.angle));
  ctx.fillStyle = padHoleColor;
  if (pad.drillshape == "oblong") {
    ctx.fill(getOblongPath(pad.drillsize));
  } else {
    ctx.fill(getCirclePath(pad.drillsize[0] / 2));
  }
  ctx.restore();
}

function drawFootprint(ctx, layer, scalefactor, footprint, colors, highlight, outline) {
  if (highlight) {
    // draw bounding box
    if (footprint.layer == layer) {
      ctx.save();
      ctx.globalAlpha = 0.2;
      ctx.translate(...footprint.bbox.pos);
      ctx.rotate(deg2rad(-footprint.bbox.angle));
      ctx.translate(...footprint.bbox.relpos);
      ctx.fillStyle = colors.pad;
      ctx.fillRect(0, 0, ...footprint.bbox.size);
      ctx.globalAlpha = 1;
      ctx.strokeStyle = colors.pad;
      ctx.lineWidth = 3 / scalefactor;
      ctx.strokeRect(0, 0, ...footprint.bbox.size);
      ctx.restore();
    }
  }
  // draw drawings
  for (var drawing of footprint.drawings) {
    if (drawing.layer == layer) {
      drawDrawing(ctx, scalefactor, drawing.drawing, colors.pad);
    }
  }
  ctx.lineWidth = 3 / scalefactor;
  // draw pads
  if (settings.renderPads) {
    for (var pad of footprint.pads) {
      if (pad.layers.includes(layer)) {
        drawPad(ctx, pad, colors.pad, outline);
        if (pad.pin1 && settings.highlightpin1) {
          drawPad(ctx, pad, colors.outline, true);
        }
      }
    }
    for (var pad of footprint.pads) {
      drawPadHole(ctx, pad, colors.padHole);
    }
  }
}

function drawEdgeCuts(canvas, scalefactor) {
  var ctx = canvas.getContext("2d");
  var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
  for (var edge of pcbdata.edges) {
    drawDrawing(ctx, scalefactor, edge, edgecolor);
  }
}

function drawFootprints(canvas, layer, scalefactor, highlight) {
  var ctx = canvas.getContext("2d");
  ctx.lineWidth = 3 / scalefactor;
  var style = getComputedStyle(topmostdiv);

  var colors = {
    pad: style.getPropertyValue('--pad-color'),
    padHole: style.getPropertyValue('--pad-hole-color'),
    outline: style.getPropertyValue('--pin1-outline-color'),
  }

  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var mod = pcbdata.footprints[i];
    var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
    var h = highlightedFootprints.includes(i);
    var d = markedFootprints.has(i);
    if (highlight) {
      if(h && d) {
        colors.pad = style.getPropertyValue('--pad-color-highlight-both');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-both');
      } else if (h) {
        colors.pad = style.getPropertyValue('--pad-color-highlight');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight');
      } else if (d) {
        colors.pad = style.getPropertyValue('--pad-color-highlight-marked');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-marked');
      }
    }
    if( h || d || !highlight) {
      drawFootprint(ctx, layer, scalefactor, mod, colors, highlight, outline);
    }
  }
}

function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
  var ctx = canvas.getContext("2d");
  for (var d of pcbdata.drawings[layername][layer]) {
    if (["segment", "arc", "circle", "curve", "rect"].includes(d.type)) {
      drawedge(ctx, scalefactor, d, edgeColor);
    } else if (d.type == "polygon") {
      drawPolygonShape(ctx, scalefactor, d, polygonColor);
    } else {
      drawText(ctx, d, textColor);
    }
  }
}

function drawTracks(canvas, layer, color, highlight) {
  ctx = canvas.getContext("2d");
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  for (var track of pcbdata.tracks[layer]) {
    if (highlight && highlightedNet != track.net) continue;
    ctx.lineWidth = track.width;
    ctx.beginPath();
    if ('radius' in track) {
      ctx.arc(
        ...track.center,
        track.radius,
        deg2rad(track.startangle),
        deg2rad(track.endangle));
    } else {
      ctx.moveTo(...track.start);
      ctx.lineTo(...track.end);
    }
    ctx.stroke();
  }
}

function drawZones(canvas, layer, color, highlight) {
  ctx = canvas.getContext("2d");
  ctx.strokeStyle = color;
  ctx.fillStyle = color;
  ctx.lineJoin = "round";
  for (var zone of pcbdata.zones[layer]) {
    if (!zone.path2d) {
      zone.path2d = getPolygonsPath(zone);
    }
    if (highlight && highlightedNet != zone.net) continue;
    ctx.fill(zone.path2d, zone.fillrule || "nonzero");
    if (zone.width > 0) {
      ctx.lineWidth = zone.width;
      ctx.stroke(zone.path2d);
    }
  }
}

function clearCanvas(canvas, color = null) {
  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  if (color) {
    ctx.fillStyle = color;
    ctx.fillRect(0, 0, canvas.width, canvas.height);
  } else {
    if (!window.matchMedia("print").matches)
      ctx.clearRect(0, 0, canvas.width, canvas.height);
  }
  ctx.restore();
}

function drawNets(canvas, layer, highlight) {
  var style = getComputedStyle(topmostdiv);
  if (settings.renderTracks) {
    var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
    drawTracks(canvas, layer, trackColor, highlight);
  }
  if (settings.renderZones) {
    var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
    drawZones(canvas, layer, zoneColor, highlight);
  }
  if (highlight && settings.renderPads) {
    var padColor = style.getPropertyValue('--pad-color-highlight');
    var padHoleColor = style.getPropertyValue('--pad-hole-color');
    var ctx = canvas.getContext("2d");
    for (var footprint of pcbdata.footprints) {
      // draw pads
      var padDrawn = false;
      for (var pad of footprint.pads) {
        if (highlightedNet != pad.net) continue;
        if (pad.layers.includes(layer)) {
          drawPad(ctx, pad, padColor, false);
          padDrawn = true;
        }
      }
      if (padDrawn) {
        // redraw all pad holes because some pads may overlap
        for (var pad of footprint.pads) {
          drawPadHole(ctx, pad, padHoleColor);
        }
      }
    }
  }
}

function drawHighlightsOnLayer(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.highlight);
  }
  if (markedFootprints.size > 0 || highlightedFootprints.length > 0) {
    drawFootprints(canvasdict.highlight, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom, true);
  }
  if (highlightedNet !== null) {
    drawNets(canvasdict.highlight, canvasdict.layer, true);
  }
}

function drawHighlights() {
  drawHighlightsOnLayer(allcanvas.front);
  drawHighlightsOnLayer(allcanvas.back);
}

function drawBackground(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.bg);
    clearCanvas(canvasdict.fab);
    clearCanvas(canvasdict.silk);
  }

  drawNets(canvasdict.bg, canvasdict.layer, false);
  drawFootprints(canvasdict.bg, canvasdict.layer,
    canvasdict.transform.s * canvasdict.transform.zoom, false);

  drawEdgeCuts(canvasdict.bg, canvasdict.transform.s * canvasdict.transform.zoom);

  var style = getComputedStyle(topmostdiv);
  var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
  var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
  var textColor = style.getPropertyValue('--silkscreen-text-color');
  if (settings.renderSilkscreen) {
    drawBgLayer(
      "silkscreen", canvasdict.silk, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
  edgeColor = style.getPropertyValue('--fabrication-edge-color');
  polygonColor = style.getPropertyValue('--fabrication-polygon-color');
  textColor = style.getPropertyValue('--fabrication-text-color');
  if (settings.renderFabrication) {
    drawBgLayer(
      "fabrication", canvasdict.fab, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
}

function prepareCanvas(canvas, flip, transform) {
  var ctx = canvas.getContext("2d");
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  ctx.scale(transform.zoom, transform.zoom);
  ctx.translate(transform.panx, transform.pany);
  if (flip) {
    ctx.scale(-1, 1);
  }
  ctx.translate(transform.x, transform.y);
  ctx.rotate(deg2rad(settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
  ctx.scale(transform.s, transform.s);
}

function prepareLayer(canvasdict) {
  var flip = (canvasdict.layer === "B");
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    prepareCanvas(canvasdict[c], flip, canvasdict.transform);
  }
}

function rotateVector(v, angle) {
  angle = deg2rad(angle);
  return [
    v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
    v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
  ];
}

function applyRotation(bbox, flip) {
  var corners = [
    [bbox.minx, bbox.miny],
    [bbox.minx, bbox.maxy],
    [bbox.maxx, bbox.miny],
    [bbox.maxx, bbox.maxy],
  ];
  corners = corners.map((v) => rotateVector(v, settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
  return {
    minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
    miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
    maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
    maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
  }
}

function recalcLayerScale(layerdict, width, height) {
  var flip = (layerdict.layer === "B");
  var bbox = applyRotation(pcbdata.edges_bbox, flip);
  var scalefactor = 0.98 * Math.min(
    width / (bbox.maxx - bbox.minx),
    height / (bbox.maxy - bbox.miny)
  );
  if (scalefactor < 0.1) {
    scalefactor = 1;
  }
  layerdict.transform.s = scalefactor;
  if (flip) {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
  } else {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
  }
  layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    canvas = layerdict[c];
    canvas.width = width;
    canvas.height = height;
    canvas.style.width = (width / devicePixelRatio) + "px";
    canvas.style.height = (height / devicePixelRatio) + "px";
  }
}

function redrawCanvas(layerdict) {
  prepareLayer(layerdict);
  drawBackground(layerdict);
  drawHighlightsOnLayer(layerdict);
}

function resizeCanvas(layerdict) {
  var canvasdivid = {
    "F": "frontcanvas",
    "B": "backcanvas"
  } [layerdict.layer];
  var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
  var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
  recalcLayerScale(layerdict, width, height);
  redrawCanvas(layerdict);
}

function resizeAll() {
  resizeCanvas(allcanvas.front);
  resizeCanvas(allcanvas.back);
}

function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var dx, dy;
  if (len_sq == 0) {
    // start and end of the segment coincide
    dx = x - x1;
    dy = y - y1;
  } else {
    var param = dot / len_sq;
    var xx, yy;
    if (param < 0) {
      xx = x1;
      yy = y1;
    } else if (param > 1) {
      xx = x2;
      yy = y2;
    } else {
      xx = x1 + param * C;
      yy = y1 + param * D;
    }
    dx = x - xx;
    dy = y - yy;
  }
  return dx * dx + dy * dy <= d * d;
}

function modulo(n, mod) {
  return ((n % mod) + mod) % mod;
}

function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
  var dx = x - xc;
  var dy = y - yc;
  var r_sq = dx * dx + dy * dy;
  var rmin = Math.max(0, radius - d);
  var rmax = radius + d;

  if (r_sq < rmin * rmin || r_sq > rmax * rmax)
    return false;

  var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
  var dx1 = xc + radius * Math.cos(angle1) - x;
  var dy1 = yc + radius * Math.sin(angle1) - y;
  if (dx1 * dx1 + dy1 * dy1 <= d * d)
    return true;

  var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
  var dx2 = xc + radius * Math.cos(angle2) - x;
  var dy2 = yc + radius * Math.sin(angle2) - y;
  if (dx2 * dx2 + dy2 * dy2 <= d * d)
    return true;

  var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
  if (angle1 > angle2)
    return (angle >= angle2 || angle <= angle1);
  else
    return (angle >= angle1 && angle <= angle2);
}

function pointWithinPad(x, y, pad) {
  var v = [x - pad.pos[0], y - pad.pos[1]];
  v = rotateVector(v, pad.angle);
  if (pad.offset) {
    v[0] -= pad.offset[0];
    v[1] -= pad.offset[1];
  }
  return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}

function netHitScan(layer, x, y) {
  // Check track segments
  if (settings.renderTracks && pcbdata.tracks) {
    for (var track of pcbdata.tracks[layer]) {
      if ('radius' in track) {
        if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
          return track.net;
        }
      } else {
        if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
          return track.net;
        }
      }
    }
  }
  // Check pads
  if (settings.renderPads) {
    for (var footprint of pcbdata.footprints) {
      for (var pad of footprint.pads) {
        if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
          return pad.net;
        }
      }
    }
  }
  return null;
}

function pointWithinFootprintBbox(x, y, bbox) {
  var v = [x - bbox.pos[0], y - bbox.pos[1]];
  v = rotateVector(v, bbox.angle);
  return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
    bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}

function bboxHitScan(layer, x, y) {
  var result = [];
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var footprint = pcbdata.footprints[i];
    if (footprint.layer == layer) {
      if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
        result.push(i);
      }
    }
  }
  return result;
}

function handlePointerDown(e, layerdict) {
  if (e.button != 0 && e.button != 1) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  layerdict.pointerStates[e.pointerId] = {
    distanceTravelled: 0,
    lastX: e.offsetX,
    lastY: e.offsetY,
    downTime: Date.now(),
  };
}

function handleMouseClick(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var x = e.offsetX;
  var y = e.offsetY;
  var t = layerdict.transform;
  var flip = layerdict.layer === "B";
  if (flip) {
    x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
  } else {
    x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
  }
  y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
  var v = rotateVector([x, y], -settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0));
  if ("nets" in pcbdata) {
    var net = netHitScan(layerdict.layer, ...v);
    if (net !== highlightedNet) {
      netClicked(net);
    }
  }
  if (highlightedNet === null) {
    var footprints = bboxHitScan(layerdict.layer, ...v);
    if (footprints.length > 0) {
      footprintsClicked(footprints);
    }
  }
}

function handlePointerLeave(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();

  if (!settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }

  delete layerdict.pointerStates[e.pointerId];
}

function resetTransform(layerdict) {
  layerdict.transform.panx = 0;
  layerdict.transform.pany = 0;
  layerdict.transform.zoom = 1;
  redrawCanvas(layerdict);
}

function handlePointerUp(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  e.preventDefault();
  e.stopPropagation();

  if (e.button == 2) {
    // Reset pan and zoom on right click.
    resetTransform(layerdict);
    layerdict.anotherPointerTapped = false;
    return;
  }

  // We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
  var ptr = layerdict.pointerStates[e.pointerId];
  ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);

  if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
    if (Object.keys(layerdict.pointerStates).length == 1) {
      if (layerdict.anotherPointerTapped) {
        // This is the second pointer coming off of a two-finger tap
        resetTransform(layerdict);
      } else {
        // This is just a regular tap
        handleMouseClick(e, layerdict);
      }
      layerdict.anotherPointerTapped = false;
    } else {
      // This is the first finger coming off of what could become a two-finger tap
      layerdict.anotherPointerTapped = true;
    }
  } else {
    if (!settings.redrawOnDrag) {
      redrawCanvas(layerdict);
    }
    layerdict.anotherPointerTapped = false;
  }

  delete layerdict.pointerStates[e.pointerId];
}

function handlePointerMove(e, layerdict) {
  if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var thisPtr = layerdict.pointerStates[e.pointerId];

  var dx = e.offsetX - thisPtr.lastX;
  var dy = e.offsetY - thisPtr.lastY;

  // If this number is low on pointer up, we count the action as a click
  thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);

  if (Object.keys(layerdict.pointerStates).length == 1) {
    // This is a simple drag
    layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
    layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
  } else if (Object.keys(layerdict.pointerStates).length == 2) {
    var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];

    var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
    var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));

    var scaleFactor = newDist / oldDist;

    if (scaleFactor != NaN) {
      layerdict.transform.zoom *= scaleFactor;

      var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
      layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
      layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
    }
  }

  thisPtr.lastX = e.offsetX;
  thisPtr.lastY = e.offsetY;

  if (settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }
}

function handleMouseWheel(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();
  var t = layerdict.transform;
  var wheeldelta = e.deltaY;
  if (e.deltaMode == 1) {
    // FF only, scroll by lines
    wheeldelta *= 30;
  } else if (e.deltaMode == 2) {
    wheeldelta *= 300;
  }
  var m = Math.pow(1.1, -wheeldelta / 40);
  // Limit amount of zoom per tick.
  if (m > 2) {
    m = 2;
  } else if (m < 0.5) {
    m = 0.5;
  }
  t.zoom *= m;
  var zoomd = (1 - m) / t.zoom;
  t.panx += devicePixelRatio * e.offsetX * zoomd;
  t.pany += devicePixelRatio * e.offsetY * zoomd;
  redrawCanvas(layerdict);
}

function addMouseHandlers(div, layerdict) {
  div.addEventListener("pointerdown", function(e) {
    handlePointerDown(e, layerdict);
  });
  div.addEventListener("pointermove", function(e) {
    handlePointerMove(e, layerdict);
  });
  div.addEventListener("pointerup", function(e) {
    handlePointerUp(e, layerdict);
  });
  var pointerleave = function(e) {
    handlePointerLeave(e, layerdict);
  }
  div.addEventListener("pointercancel", pointerleave);
  div.addEventListener("pointerleave", pointerleave);
  div.addEventListener("pointerout", pointerleave);

  div.onwheel = function(e) {
    handleMouseWheel(e, layerdict);
  }
  for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
    element.addEventListener("contextmenu", function(e) {
      e.preventDefault();
    }, false);
  }
}

function setRedrawOnDrag(value) {
  settings.redrawOnDrag = value;
  writeStorage("redrawOnDrag", value);
}

function setBoardRotation(value) {
  settings.boardRotation = value * 5;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  resizeAll();
}

function setOffsetBackRotation(value) {
  settings.offsetBackRotation = value;
  writeStorage("offsetBackRotation", value);
  resizeAll();
}

function initRender() {
  allcanvas = {
    front: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("F_bg"),
      fab: document.getElementById("F_fab"),
      silk: document.getElementById("F_slk"),
      highlight: document.getElementById("F_hl"),
      layer: "F",
    },
    back: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("B_bg"),
      fab: document.getElementById("B_fab"),
      silk: document.getElementById("B_slk"),
      highlight: document.getElementById("B_hl"),
      layer: "B",
    }
  };
  addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
  addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/*
 * Table reordering via Drag'n'Drop
 * Inspired by: https://htmldom.dev/drag-and-drop-table-column
 */

function setBomHandlers() {

  const bom = document.getElementById('bomtable');

  let dragName;
  let placeHolderElements;
  let draggingElement;
  let forcePopulation;
  let xOffset;
  let yOffset;
  let wasDragged;

  const mouseUpHandler = function(e) {
    // Delete dragging element
    draggingElement.remove();

    // Make BOM selectable again
    bom.style.removeProperty("userSelect");

    // Remove listeners
    document.removeEventListener('mousemove', mouseMoveHandler);
    document.removeEventListener('mouseup', mouseUpHandler);

    if (wasDragged) {
      // Redraw whole BOM
      populateBomTable();
    }
  }

  const mouseMoveHandler = function(e) {
    // Notice the dragging
    wasDragged = true;

    // Make the dragged element visible
    draggingElement.style.removeProperty("display");

    // Set elements position to mouse position
    draggingElement.style.left = `${e.screenX - xOffset}px`;
    draggingElement.style.top = `${e.screenY - yOffset}px`;

    // Forced redrawing of BOM table
    if (forcePopulation) {
      forcePopulation = false;
      // Copy array
      phe = Array.from(placeHolderElements);
      // populate BOM table again
      populateBomHeader(dragName, phe);
      populateBomBody(dragName, phe);
    }

    // Set up array of hidden columns
    var hiddenColumns = Array.from(settings.hiddenColumns);
    // In the ungrouped mode, quantity don't exist
    if (settings.bommode === "ungrouped")
      hiddenColumns.push("Quantity");
    // If no checkbox fields can be found, we consider them hidden
    if (settings.checkboxes.length == 0)
      hiddenColumns.push("checkboxes");

    // Get table headers and group them into checkboxes, extrafields and normal headers
    const bh = document.getElementById("bomhead");
    headers = Array.from(bh.querySelectorAll("th"))
    headers.shift() // numCol is not part of the columnOrder
    headerGroups = []
    lastCompoundClass = null;
    for (i = 0; i < settings.columnOrder.length; i++) {
      cElem = settings.columnOrder[i];
      if (hiddenColumns.includes(cElem)) {
        // Hidden columns appear as a dummy element
        headerGroups.push([]);
        continue;
      }
      elem = headers.filter(e => getColumnOrderName(e) === cElem)[0];
      if (elem.classList.contains("bom-checkbox")) {
        if (lastCompoundClass === "bom-checkbox") {
          cbGroup = headerGroups.pop();
          cbGroup.push(elem);
          headerGroups.push(cbGroup);
        } else {
          lastCompoundClass = "bom-checkbox";
          headerGroups.push([elem])
        }
      } else {
        headerGroups.push([elem])
      }
    }

    // Copy settings.columnOrder
    var columns = Array.from(settings.columnOrder)

    // Set up array with indices of hidden columns
    var hiddenIndices = hiddenColumns.map(e => settings.columnOrder.indexOf(e));
    var dragIndex = columns.indexOf(dragName);
    var swapIndex = dragIndex;
    var swapDone = false;

    // Check if the current dragged element is swapable with the left or right element
    if (dragIndex > 0) {
      // Get left headers boundingbox
      swapIndex = dragIndex - 1;
      while (hiddenIndices.includes(swapIndex) && swapIndex > 0)
        swapIndex--;
      if (!hiddenIndices.includes(swapIndex)) {
        box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
        if (e.clientX < box.left + window.scrollX + (box.width / 2)) {
          swapElement = columns[dragIndex];
          columns.splice(dragIndex, 1);
          columns.splice(swapIndex, 0, swapElement);
          forcePopulation = true;
          swapDone = true;
        }
      }
    }
    if ((!swapDone) && dragIndex < headerGroups.length - 1) {
      // Get right headers boundingbox
      swapIndex = dragIndex + 1;
      while (hiddenIndices.includes(swapIndex))
        swapIndex++;
      if (swapIndex < headerGroups.length) {
        box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
        if (e.clientX > box.left + window.scrollX + (box.width / 2)) {
          swapElement = columns[dragIndex];
          columns.splice(dragIndex, 1);
          columns.splice(swapIndex, 0, swapElement);
          forcePopulation = true;
          swapDone = true;
        }
      }
    }

    // Write back change to storage
    if (swapDone) {
      settings.columnOrder = columns
      writeStorage("columnOrder", JSON.stringify(columns));
    }

  }

  const mouseDownHandler = function(e) {
    var target = e.target;
    if (target.tagName.toLowerCase() != "td")
      target = target.parentElement;

    // Used to check if a dragging has ever happened
    wasDragged = false;

    // Create new element which will be displayed as the dragged column
    draggingElement = document.createElement("div")
    draggingElement.classList.add("dragging");
    draggingElement.style.display = "none";
    draggingElement.style.position = "absolute";
    draggingElement.style.overflow = "hidden";

    // Get bomhead and bombody elements
    const bh = document.getElementById("bomhead");
    const bb = document.getElementById("bombody");

    // Get all compound headers for the current column
    var compoundHeaders;
    if (target.classList.contains("bom-checkbox")) {
      compoundHeaders = Array.from(bh.querySelectorAll("th.bom-checkbox"));
    } else {
      compoundHeaders = [target];
    }

    // Create new table which will display the column
    var newTable = document.createElement("table");
    newTable.classList.add("bom");
    newTable.style.background = "white";
    draggingElement.append(newTable);

    // Create new header element
    var newHeader = document.createElement("thead");
    newTable.append(newHeader);

    // Set up array for storing all placeholder elements
    placeHolderElements = [];

    // Add all compound headers to the new thead element and placeholders
    compoundHeaders.forEach(function(h) {
      clone = cloneElementWithDimensions(h);
      newHeader.append(clone);
      placeHolderElements.push(clone);
    });

    // Create new body element
    var newBody = document.createElement("tbody");
    newTable.append(newBody);

    // Get indices for compound headers
    var idxs = compoundHeaders.map(e => getBomTableHeaderIndex(e));

    // For each row in the BOM body...
    var rows = bb.querySelectorAll("tr");
    rows.forEach(function(row) {
      // ..get the cells for the compound column
      const tds = row.querySelectorAll("td");
      var copytds = idxs.map(i => tds[i]);
      // Add them to the new element and the placeholders
      var newRow = document.createElement("tr");
      copytds.forEach(function(td) {
        clone = cloneElementWithDimensions(td);
        newRow.append(clone);
        placeHolderElements.push(clone);
      });
      newBody.append(newRow);
    });

    // Compute width for compound header
    var width = compoundHeaders.reduce((acc, x) => acc + x.clientWidth, 0);
    draggingElement.style.width = `${width}px`;

    // Insert the new dragging element and disable selection on BOM
    bom.insertBefore(draggingElement, null);
    bom.style.userSelect = "none";

    // Determine the mouse position offset
    xOffset = e.screenX - compoundHeaders.reduce((acc, x) => Math.min(acc, x.offsetLeft), compoundHeaders[0].offsetLeft);
    yOffset = e.screenY - compoundHeaders[0].offsetTop;

    // Get name for the column in settings.columnOrder
    dragName = getColumnOrderName(target);

    // Change text and class for placeholder elements
    placeHolderElements = placeHolderElements.map(function(e) {
      newElem = cloneElementWithDimensions(e);
      newElem.textContent = "";
      newElem.classList.add("placeholder");
      return newElem;
    });

    // On next mouse move, the whole BOM needs to be redrawn to show the placeholders
    forcePopulation = true;

    // Add listeners for move and up on mouse
    document.addEventListener('mousemove', mouseMoveHandler);
    document.addEventListener('mouseup', mouseUpHandler);
  }

  // In netlist mode, there is nothing to reorder
  if (settings.bommode === "netlist")
    return;

  // Add mouseDownHandler to every column except the numCol
  bom.querySelectorAll("th")
    .forEach(function(head) {
      if (!head.classList.contains("numCol")) {
        head.onmousedown = mouseDownHandler;
      }
    });

}

function getBoundingClientRectFromMultiple(elements) {
  var elems = Array.from(elements);

  if (elems.length == 0)
    return null;

  var box = elems.shift()
    .getBoundingClientRect();

  elems.forEach(function(elem) {
    var elembox = elem.getBoundingClientRect();
    box.left = Math.min(elembox.left, box.left);
    box.top = Math.min(elembox.top, box.top);
    box.width += elembox.width;
    box.height = Math.max(elembox.height, box.height);
  });

  return box;
}

function cloneElementWithDimensions(elem) {
  var newElem = elem.cloneNode(true);
  newElem.style.height = window.getComputedStyle(elem).height;
  newElem.style.width = window.getComputedStyle(elem).width;
  return newElem;
}

function getBomTableHeaderIndex(elem) {
  const bh = document.getElementById('bomhead');
  const ths = Array.from(bh.querySelectorAll("th"));
  return ths.indexOf(elem);
}

function getColumnOrderName(elem) {
  var cname = elem.getAttribute("col_name");
  if (cname === "bom-checkbox")
    return "checkboxes";
  else
    return cname;
}

function resizableGrid(tablehead) {
  var cols = tablehead.firstElementChild.children;
  var rowWidth = tablehead.offsetWidth;

  for (var i = 1; i < cols.length; i++) {
    if (cols[i].classList.contains("bom-checkbox"))
      continue;
    cols[i].style.width = ((cols[i].clientWidth - paddingDiff(cols[i])) * 100 / rowWidth) + '%';
  }

  for (var i = 1; i < cols.length - 1; i++) {
    var div = document.createElement('div');
    div.className = "column-width-handle";
    cols[i].appendChild(div);
    setListeners(div);
  }

  function setListeners(div) {
    var startX, curCol, nxtCol, curColWidth, nxtColWidth, rowWidth;

    div.addEventListener('mousedown', function(e) {
      e.preventDefault();
      e.stopPropagation();

      curCol = e.target.parentElement;
      nxtCol = curCol.nextElementSibling;
      startX = e.pageX;

      var padding = paddingDiff(curCol);

      rowWidth = curCol.parentElement.offsetWidth;
      curColWidth = curCol.clientWidth - padding;
      nxtColWidth = nxtCol.clientWidth - padding;
    });

    document.addEventListener('mousemove', function(e) {
      if (startX) {
        var diffX = e.pageX - startX;
        diffX = -Math.min(-diffX, curColWidth - 20);
        diffX = Math.min(diffX, nxtColWidth - 20);

        curCol.style.width = ((curColWidth + diffX) * 100 / rowWidth) + '%';
        nxtCol.style.width = ((nxtColWidth - diffX) * 100 / rowWidth) + '%';
        console.log(`${curColWidth + nxtColWidth} ${(curColWidth + diffX) * 100 / rowWidth + (nxtColWidth - diffX) * 100 / rowWidth}`);
      }
    });

    document.addEventListener('mouseup', function(e) {
      curCol = undefined;
      nxtCol = undefined;
      startX = undefined;
      nxtColWidth = undefined;
      curColWidth = undefined
    });
  }

  function paddingDiff(col) {

    if (getStyleVal(col, 'box-sizing') == 'border-box') {
      return 0;
    }

    var padLeft = getStyleVal(col, 'padding-left');
    var padRight = getStyleVal(col, 'padding-right');
    return (parseInt(padLeft) + parseInt(padRight));

  }

  function getStyleVal(elm, css) {
    return (window.getComputedStyle(elm, null).getPropertyValue(css))
  }
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/* DOM manipulation and misc code */

var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var footprintIndexToHandler = {};
var netsToHandler = {};
var markedFootprints = new Set();
var highlightedFootprints = [];
var highlightedNet = null;
var lastClicked;

function dbg(html) {
  dbgdiv.innerHTML = html;
}

function redrawIfInitDone() {
  if (initDone) {
    redrawCanvas(allcanvas.front);
    redrawCanvas(allcanvas.back);
  }
}

function padsVisible(value) {
  writeStorage("padsVisible", value);
  settings.renderPads = value;
  redrawIfInitDone();
}

function referencesVisible(value) {
  writeStorage("referencesVisible", value);
  settings.renderReferences = value;
  redrawIfInitDone();
}

function valuesVisible(value) {
  writeStorage("valuesVisible", value);
  settings.renderValues = value;
  redrawIfInitDone();
}

function tracksVisible(value) {
  writeStorage("tracksVisible", value);
  settings.renderTracks = value;
  redrawIfInitDone();
}

function zonesVisible(value) {
  writeStorage("zonesVisible", value);
  settings.renderZones = value;
  redrawIfInitDone();
}

function dnpOutline(value) {
  writeStorage("dnpOutline", value);
  settings.renderDnpOutline = value;
  redrawIfInitDone();
}

function setDarkMode(value) {
  if (value) {
    topmostdiv.classList.add("dark");
  } else {
    topmostdiv.classList.remove("dark");
  }
  writeStorage("darkmode", value);
  settings.darkMode = value;
  redrawIfInitDone();
}

function setShowBOMColumn(field, value) {
  if (field === "references") {
    var rl = document.getElementById("reflookup");
    rl.disabled = !value;
    if (!value) {
      rl.value = "";
      updateRefLookup("");
    }
  }

  var n = settings.hiddenColumns.indexOf(field);
  if (value) {
    if (n != -1) {
      settings.hiddenColumns.splice(n, 1);
    }
  } else {
    if (n == -1) {
      settings.hiddenColumns.push(field);
    }
  }

  writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns));

  if (initDone) {
    populateBomTable();
  }

  redrawIfInitDone();
}


function setFullscreen(value) {
  if (value) {
    document.documentElement.requestFullscreen();
  } else {
    document.exitFullscreen();
  }
}

function fabricationVisible(value) {
  writeStorage("fabricationVisible", value);
  settings.renderFabrication = value;
  redrawIfInitDone();
}

function silkscreenVisible(value) {
  writeStorage("silkscreenVisible", value);
  settings.renderSilkscreen = value;
  redrawIfInitDone();
}

function setHighlightPin1(value) {
  writeStorage("highlightpin1", value);
  settings.highlightpin1 = value;
  redrawIfInitDone();
}

function getStoredCheckboxRefs(checkbox) {
  function convert(ref) {
    var intref = parseInt(ref);
    if (isNaN(intref)) {
      for (var i = 0; i < pcbdata.footprints.length; i++) {
        if (pcbdata.footprints[i].ref == ref) {
          return i;
        }
      }
      return -1;
    } else {
      return intref;
    }
  }
  if (!(checkbox in settings.checkboxStoredRefs)) {
    var val = readStorage("checkbox_" + checkbox);
    settings.checkboxStoredRefs[checkbox] = val ? val : "";
  }
  if (!settings.checkboxStoredRefs[checkbox]) {
    return new Set();
  } else {
    return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
  }
}

function getCheckboxState(checkbox, references) {
  var storedRefsSet = getStoredCheckboxRefs(checkbox);
  var currentRefsSet = new Set(references.map(r => r[1]));
  // Get difference of current - stored
  var difference = new Set(currentRefsSet);
  for (ref of storedRefsSet) {
    difference.delete(ref);
  }
  if (difference.size == 0) {
    // All the current refs are stored
    return "checked";
  } else if (difference.size == currentRefsSet.size) {
    // None of the current refs are stored
    return "unchecked";
  } else {
    // Some of the refs are stored
    return "indeterminate";
  }
}

function setBomCheckboxState(checkbox, element, references) {
  var state = getCheckboxState(checkbox, references);
  element.checked = (state == "checked");
  element.indeterminate = (state == "indeterminate");
}

function createCheckboxChangeHandler(checkbox, references, row) {
  return function () {
    refsSet = getStoredCheckboxRefs(checkbox);
    var markWhenChecked = settings.markWhenChecked == checkbox;
    eventArgs = {
      checkbox: checkbox,
      refs: references,
    }
    if (this.checked) {
      // checkbox ticked
      for (var ref of references) {
        refsSet.add(ref[1]);
      }
      if (markWhenChecked) {
        row.classList.add("checked");
        for (var ref of references) {
          markedFootprints.add(ref[1]);
        }
        drawHighlights();
      }
      eventArgs.state = 'checked';
    } else {
      // checkbox unticked
      for (var ref of references) {
        refsSet.delete(ref[1]);
      }
      if (markWhenChecked) {
        row.classList.remove("checked");
        for (var ref of references) {
          markedFootprints.delete(ref[1]);
        }
        drawHighlights();
      }
      eventArgs.state = 'unchecked';
    }
    settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
    updateCheckboxStats(checkbox);
    EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
  }
}

function clearHighlightedFootprints() {
  if (currentHighlightedRowId) {
    document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    currentHighlightedRowId = null;
    highlightedFootprints = [];
    highlightedNet = null;
  }
}

function createRowHighlightHandler(rowid, refs, net) {
  return function () {
    if (currentHighlightedRowId) {
      if (currentHighlightedRowId == rowid) {
        return;
      }
      document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    }
    document.getElementById(rowid).classList.add("highlighted");
    currentHighlightedRowId = rowid;
    highlightedFootprints = refs ? refs.map(r => r[1]) : [];
    highlightedNet = net;
    drawHighlights();
    EventHandler.emitEvent(
      IBOM_EVENT_TYPES.HIGHLIGHT_EVENT, {
      rowid: rowid,
      refs: refs,
      net: net
    });
  }
}

function entryMatches(entry) {
  if (settings.bommode == "netlist") {
    // entry is just a net name
    return entry.toLowerCase().indexOf(filter) >= 0;
  }
  // check refs
  if (!settings.hiddenColumns.includes("references")) {
    for (var ref of entry) {
      if (ref[0].toLowerCase().indexOf(filter) >= 0) {
        return true;
      }
    }
  }
  // check fields
  for (var i in config.fields) {
    var f = config.fields[i];
    if (!settings.hiddenColumns.includes(f)) {
      for (var ref of entry) {
        if (pcbdata.bom.fields[ref[1]][i].toLowerCase().indexOf(filter) >= 0) {
          return true;
        }
      }
    }
  }
  return false;
}

function findRefInEntry(entry) {
  return entry.filter(r => r[0].toLowerCase() == reflookup);
}

function highlightFilter(s) {
  if (!filter) {
    return s;
  }
  var parts = s.toLowerCase().split(filter);
  if (parts.length == 1) {
    return s;
  }
  var r = "";
  var pos = 0;
  for (var i in parts) {
    if (i > 0) {
      r += '<mark class="highlight">' +
        s.substring(pos, pos + filter.length) +
        '</mark>';
      pos += filter.length;
    }
    r += s.substring(pos, pos + parts[i].length);
    pos += parts[i].length;
  }
  return r;
}

function checkboxSetUnsetAllHandler(checkboxname) {
  return function () {
    var checkboxnum = 0;
    while (checkboxnum < settings.checkboxes.length &&
      settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
      checkboxnum++;
    }
    if (checkboxnum >= settings.checkboxes.length) {
      return;
    }
    var allset = true;
    var checkbox;
    var row;
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      if (!checkbox.checked || checkbox.indeterminate) {
        allset = false;
        break;
      }
    }
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      checkbox.checked = !allset;
      checkbox.indeterminate = false;
      checkbox.onchange();
    }
  }
}

function createColumnHeader(name, cls, comparator, is_checkbox = false) {
  var th = document.createElement("TH");
  th.innerHTML = name;
  th.classList.add(cls);
  if (is_checkbox)
    th.setAttribute("col_name", "bom-checkbox");
  else
    th.setAttribute("col_name", name);
  var span = document.createElement("SPAN");
  span.classList.add("sortmark");
  span.classList.add("none");
  th.appendChild(span);
  var spacer = document.createElement("div");
  spacer.className = "column-spacer";
  th.appendChild(spacer);
  spacer.onclick = function () {
    if (currentSortColumn && th !== currentSortColumn) {
      // Currently sorted by another column
      currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
      currentSortColumn.childNodes[1].classList.add("none");
      currentSortColumn = null;
      currentSortOrder = null;
    }
    if (currentSortColumn && th === currentSortColumn) {
      // Already sorted by this column
      if (currentSortOrder == "asc") {
        // Sort by this column, descending order
        bomSortFunction = function (a, b) {
          return -comparator(a, b);
        }
        currentSortColumn.childNodes[1].classList.remove("asc");
        currentSortColumn.childNodes[1].classList.add("desc");
        currentSortOrder = "desc";
      } else {
        // Unsort
        bomSortFunction = null;
        currentSortColumn.childNodes[1].classList.remove("desc");
        currentSortColumn.childNodes[1].classList.add("none");
        currentSortColumn = null;
        currentSortOrder = null;
      }
    } else {
      // Sort by this column, ascending order
      bomSortFunction = comparator;
      currentSortColumn = th;
      currentSortColumn.childNodes[1].classList.remove("none");
      currentSortColumn.childNodes[1].classList.add("asc");
      currentSortOrder = "asc";
    }
    populateBomBody();
  }
  if (is_checkbox) {
    spacer.onclick = fancyDblClickHandler(
      spacer, spacer.onclick, checkboxSetUnsetAllHandler(name));
  }
  return th;
}

function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) {
  while (bomhead.firstChild) {
    bomhead.removeChild(bomhead.firstChild);
  }
  var tr = document.createElement("TR");
  var th = document.createElement("TH");
  th.classList.add("numCol");

  var vismenu = document.createElement("div");
  vismenu.id = "vismenu";
  vismenu.classList.add("menu");

  var visbutton = document.createElement("div");
  visbutton.classList.add("visbtn");
  visbutton.classList.add("hideonprint");

  var viscontent = document.createElement("div");
  viscontent.classList.add("menu-content");
  viscontent.id = "vismenu-content";

  settings.columnOrder.forEach(column => {
    if (typeof column !== "string")
      return;

    // Skip empty columns
    if (column === "checkboxes" && settings.checkboxes.length == 0)
      return;
    else if (column === "Quantity" && settings.bommode == "ungrouped")
      return;

    var label = document.createElement("label");
    label.classList.add("menu-label");

    var input = document.createElement("input");
    input.classList.add("visibility_checkbox");
    input.type = "checkbox";
    input.onchange = function (e) {
      setShowBOMColumn(column, e.target.checked)
    };
    input.checked = !(settings.hiddenColumns.includes(column));

    label.appendChild(input);
    if (column.length > 0)
      label.append(column[0].toUpperCase() + column.slice(1));

    viscontent.appendChild(label);
  });

  viscontent.childNodes[0].classList.add("menu-label-top");

  vismenu.appendChild(visbutton);
  if (settings.bommode != "netlist") {
    vismenu.appendChild(viscontent);
    th.appendChild(vismenu);
  }
  tr.appendChild(th);

  var checkboxCompareClosure = function (checkbox) {
    return (a, b) => {
      var stateA = getCheckboxState(checkbox, a);
      var stateB = getCheckboxState(checkbox, b);
      if (stateA > stateB) return -1;
      if (stateA < stateB) return 1;
      return 0;
    }
  }
  var stringFieldCompareClosure = function (fieldIndex) {
    return (a, b) => {
      var fa = pcbdata.bom.fields[a[0][1]][fieldIndex];
      var fb = pcbdata.bom.fields[b[0][1]][fieldIndex];
      if (fa != fb) return fa > fb ? 1 : -1;
      else return 0;
    }
  }
  var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/;
  var compareRefs = (a, b) => {
    var ra = referenceRegex.exec(a);
    var rb = referenceRegex.exec(b);
    if (ra === null || rb === null) {
      if (a != b) return a > b ? 1 : -1;
      return 0;
    } else {
      if (ra.groups.prefix != rb.groups.prefix) {
        return ra.groups.prefix > rb.groups.prefix ? 1 : -1;
      }
      if (ra.groups.number != rb.groups.number) {
        return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -1;
      }
      return 0;
    }
  }
  if (settings.bommode == "netlist") {
    th = createColumnHeader("Net name", "bom-netname", (a, b) => {
      if (a > b) return -1;
      if (a < b) return 1;
      return 0;
    });
    tr.appendChild(th);
  } else {
    // Filter hidden columns
    var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
    var valueIndex = config.fields.indexOf("Value");
    var footprintIndex = config.fields.indexOf("Footprint");
    columns.forEach((column) => {
      if (column === placeHolderColumn) {
        var n = 1;
        if (column === "checkboxes")
          n = settings.checkboxes.length;
        for (i = 0; i < n; i++) {
          td = placeHolderElements.shift();
          tr.appendChild(td);
        }
        return;
      } else if (column === "checkboxes") {
        for (var checkbox of settings.checkboxes) {
          th = createColumnHeader(
            checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true);
          tr.appendChild(th);
        }
      } else if (column === "References") {
        tr.appendChild(createColumnHeader("References", "references", (a, b) => {
          var i = 0;
          while (i < a.length && i < b.length) {
            if (a[i] != b[i]) return compareRefs(a[i][0], b[i][0]);
            i++;
          }
          return a.length - b.length;
        }));
      } else if (column === "Value") {
        tr.appendChild(createColumnHeader("Value", "value", (a, b) => {
          var ra = a[0][1], rb = b[0][1];
          return valueCompare(
            pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb],
            pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]);
        }));
        return;
      } else if (column === "Footprint") {
        tr.appendChild(createColumnHeader(
          "Footprint", "footprint", stringFieldCompareClosure(footprintIndex)));
      } else if (column === "Quantity" && settings.bommode == "grouped") {
        tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => {
          return a.length - b.length;
        }));
      } else {
        // Other fields
        var i = config.fields.indexOf(column);
        if (i < 0)
          return;
        tr.appendChild(createColumnHeader(
          column, `field${i + 1}`, stringFieldCompareClosure(i)));
      }
    });
  }
  bomhead.appendChild(tr);
}

function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
  const urlRegex = /^(https?:\/\/[^\s\/$.?#][^\s]*|file:\/\/([a-zA-Z]:|\/)[^\x00]+)$/;
  while (bom.firstChild) {
    bom.removeChild(bom.firstChild);
  }
  highlightHandlers = [];
  footprintIndexToHandler = {};
  netsToHandler = {};
  currentHighlightedRowId = null;
  var first = true;
  if (settings.bommode == "netlist") {
    bomtable = pcbdata.nets.slice();
  } else {
    switch (settings.canvaslayout) {
      case 'F':
        bomtable = pcbdata.bom.F.slice();
        break;
      case 'FB':
        bomtable = pcbdata.bom.both.slice();
        break;
      case 'B':
        bomtable = pcbdata.bom.B.slice();
        break;
    }
    if (settings.bommode == "ungrouped") {
      // expand bom table
      expandedTable = []
      for (var bomentry of bomtable) {
        for (var ref of bomentry) {
          expandedTable.push([ref]);
        }
      }
      bomtable = expandedTable;
    }
  }
  if (bomSortFunction) {
    bomtable = bomtable.sort(bomSortFunction);
  }
  for (var i in bomtable) {
    var bomentry = bomtable[i];
    if (filter && !entryMatches(bomentry)) {
      continue;
    }
    var references = null;
    var netname = null;
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    var rownum = +i + 1;
    tr.id = "bomrow" + rownum;
    td.textContent = rownum;
    tr.appendChild(td);
    if (settings.bommode == "netlist") {
      netname = bomentry;
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
      tr.appendChild(td);
    } else {
      if (reflookup) {
        references = findRefInEntry(bomentry);
        if (references.length == 0) {
          continue;
        }
      } else {
        references = bomentry;
      }
      // Filter hidden columns
      var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
      columns.forEach((column) => {
        if (column === placeholderColumn) {
          var n = 1;
          if (column === "checkboxes")
            n = settings.checkboxes.length;
          for (i = 0; i < n; i++) {
            td = placeHolderElements.shift();
            tr.appendChild(td);
          }
          return;
        } else if (column === "checkboxes") {
          for (var checkbox of settings.checkboxes) {
            if (checkbox) {
              td = document.createElement("TD");
              var input = document.createElement("input");
              input.type = "checkbox";
              input.onchange = createCheckboxChangeHandler(checkbox, references, tr);
              setBomCheckboxState(checkbox, input, references);
              if (input.checked && settings.markWhenChecked == checkbox) {
                tr.classList.add("checked");
              }
              td.appendChild(input);
              tr.appendChild(td);
            }
          }
        } else if (column === "References") {
          td = document.createElement("TD");
          td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
          tr.appendChild(td);
        } else if (column === "Quantity" && settings.bommode == "grouped") {
          // Quantity
          td = document.createElement("TD");
          td.textContent = references.length;
          tr.appendChild(td);
        } else {
          // All the other fields
          var field_index = config.fields.indexOf(column)
          if (field_index < 0)
            return;
          var valueSet = new Set();
          references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index]));
          td = document.createElement("TD");
          var output = new Array();
          for (let item of valueSet) {
            const visible = highlightFilter(item);
            if (typeof item === 'string' && item.match(urlRegex)) {
              output.push(`<a href="${item}" target="_blank">${visible}</a>`);
            } else {
              output.push(visible);
            }
          }
          td.innerHTML = output.join(", ");
          tr.appendChild(td);
        }
      });
    }
    bom.appendChild(tr);
    var handler = createRowHighlightHandler(tr.id, references, netname);
    tr.onmousemove = handler;
    highlightHandlers.push({
      id: tr.id,
      handler: handler,
    });
    if (references !== null) {
      for (var refIndex of references.map(r => r[1])) {
        footprintIndexToHandler[refIndex] = handler;
      }
    }
    if (netname !== null) {
      netsToHandler[netname] = handler;
    }
    if ((filter || reflookup) && first) {
      handler();
      first = false;
    }
  }
  EventHandler.emitEvent(
    IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, {
    filter: filter,
    reflookup: reflookup,
    checkboxes: settings.checkboxes,
    bommode: settings.bommode,
  });
}

function highlightPreviousRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[highlightHandlers.length - 1].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[0].id == currentHighlightedRowId) {
      highlightHandlers[highlightHandlers.length - 1].handler();
    } else {
      for (var i = 0; i < highlightHandlers.length - 1; i++) {
        if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function highlightNextRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[0].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
      highlightHandlers[0].handler();
    } else {
      for (var i = 1; i < highlightHandlers.length; i++) {
        if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function populateBomTable() {
  populateBomHeader();
  populateBomBody();
  setBomHandlers();
  resizableGrid(bomhead);
}

function footprintsClicked(footprintIndexes) {
  var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
  for (var i = 1; i <= footprintIndexes.length; i++) {
    var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
    if (refIndex in footprintIndexToHandler) {
      lastClicked = refIndex;
      footprintIndexToHandler[refIndex]();
      smoothScrollToRow(currentHighlightedRowId);
      break;
    }
  }
}

function netClicked(net) {
  if (net in netsToHandler) {
    netsToHandler[net]();
    smoothScrollToRow(currentHighlightedRowId);
  } else {
    clearHighlightedFootprints();
    highlightedNet = net;
    drawHighlights();
  }
}

function updateFilter(input) {
  filter = input.toLowerCase();
  populateBomTable();
}

function updateRefLookup(input) {
  reflookup = input.toLowerCase();
  populateBomTable();
}

function changeCanvasLayout(layout) {
  document.getElementById("fl-btn").classList.remove("depressed");
  document.getElementById("fb-btn").classList.remove("depressed");
  document.getElementById("bl-btn").classList.remove("depressed");
  switch (layout) {
    case 'F':
      document.getElementById("fl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(1);
      }
      break;
    case 'B':
      document.getElementById("bl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(0);
      }
      break;
    default:
      document.getElementById("fb-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.setSizes([50, 50]);
      }
  }
  settings.canvaslayout = layout;
  writeStorage("canvaslayout", layout);
  resizeAll();
  changeBomMode(settings.bommode);
}

function populateMetadata() {
  document.getElementById("title").innerHTML = pcbdata.metadata.title;
  document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
  document.getElementById("company").innerHTML = pcbdata.metadata.company;
  document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
  if (pcbdata.metadata.title != "") {
    document.title = pcbdata.metadata.title + " BOM";
  }
  // Calculate board stats
  var fp_f = 0,
    fp_b = 0,
    pads_f = 0,
    pads_b = 0,
    pads_th = 0;
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    if (pcbdata.bom.skipped.includes(i)) continue;
    var mod = pcbdata.footprints[i];
    if (mod.layer == "F") {
      fp_f++;
    } else {
      fp_b++;
    }
    for (var pad of mod.pads) {
      if (pad.type == "th") {
        pads_th++;
      } else {
        if (pad.layers.includes("F")) {
          pads_f++;
        }
        if (pad.layers.includes("B")) {
          pads_b++;
        }
      }
    }
  }
  document.getElementById("stats-components-front").innerHTML = fp_f;
  document.getElementById("stats-components-back").innerHTML = fp_b;
  document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
  document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
  document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
  document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
  document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
  document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
  document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
  document.getElementById("stats-th-pads").innerHTML = pads_th;
  // Update version string
  document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
    /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}

function changeBomLayout(layout) {
  document.getElementById("bom-btn").classList.remove("depressed");
  document.getElementById("lr-btn").classList.remove("depressed");
  document.getElementById("tb-btn").classList.remove("depressed");
  switch (layout) {
    case 'bom-only':
      document.getElementById("bom-btn").classList.add("depressed");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      document.getElementById("frontcanvas").style.display = "none";
      document.getElementById("backcanvas").style.display = "none";
      document.getElementById("bot").style.height = "";
      break;
    case 'top-bottom':
      document.getElementById("tb-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.remove("split-horizontal");
      document.getElementById("canvasdiv").classList.remove("split-horizontal");
      document.getElementById("frontcanvas").classList.add("split-horizontal");
      document.getElementById("backcanvas").classList.add("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        direction: "vertical",
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        onDragEnd: resizeAll
      });
      break;
    case 'left-right':
      document.getElementById("lr-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.add("split-horizontal");
      document.getElementById("canvasdiv").classList.add("split-horizontal");
      document.getElementById("frontcanvas").classList.remove("split-horizontal");
      document.getElementById("backcanvas").classList.remove("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        direction: "vertical",
        onDragEnd: resizeAll
      });
  }
  settings.bomlayout = layout;
  writeStorage("bomlayout", layout);
  changeCanvasLayout(settings.canvaslayout);
}

function changeBomMode(mode) {
  document.getElementById("bom-grouped-btn").classList.remove("depressed");
  document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
  document.getElementById("bom-netlist-btn").classList.remove("depressed");
  var chkbxs = document.getElementsByClassName("visibility_checkbox");

  switch (mode) {
    case 'grouped':
      document.getElementById("bom-grouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'ungrouped':
      document.getElementById("bom-ungrouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'netlist':
      document.getElementById("bom-netlist-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = true;
      }
  }

  writeStorage("bommode", mode);
  if (mode != settings.bommode) {
    settings.bommode = mode;
    bomSortFunction = null;
    currentSortColumn = null;
    currentSortOrder = null;
    clearHighlightedFootprints();
  }
  populateBomTable();
}

function focusFilterField() {
  focusInputField(document.getElementById("filter"));
}

function focusRefLookupField() {
  focusInputField(document.getElementById("reflookup"));
}

function toggleBomCheckbox(bomrowid, checkboxnum) {
  if (!bomrowid || checkboxnum > settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
  checkbox.checked = !checkbox.checked;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function checkBomCheckbox(bomrowid, checkboxname) {
  var checkboxnum = 0;
  while (checkboxnum < settings.checkboxes.length &&
    settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
    checkboxnum++;
  }
  if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
  checkbox.checked = true;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function setBomCheckboxes(value) {
  writeStorage("bomCheckboxes", value);
  settings.checkboxes = value.split(",").map((e) => e.trim()).filter((e) => e);
  prepCheckboxes();
  populateMarkWhenCheckedOptions();
  setMarkWhenChecked(settings.markWhenChecked);
}

function setMarkWhenChecked(value) {
  writeStorage("markWhenChecked", value);
  settings.markWhenChecked = value;
  markedFootprints.clear();
  for (var ref of (value ? getStoredCheckboxRefs(value) : [])) {
    markedFootprints.add(ref);
  }
  populateBomTable();
  drawHighlights();
}

function prepCheckboxes() {
  var table = document.getElementById("checkbox-stats");
  while (table.childElementCount > 1) {
    table.removeChild(table.lastChild);
  }
  if (settings.checkboxes.length) {
    table.style.display = "";
  } else {
    table.style.display = "none";
  }
  for (var checkbox of settings.checkboxes) {
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    td.innerHTML = checkbox;
    tr.appendChild(td);
    td = document.createElement("TD");
    td.id = "checkbox-stats-" + checkbox;
    var progressbar = document.createElement("div");
    progressbar.classList.add("bar");
    td.appendChild(progressbar);
    var text = document.createElement("div");
    text.classList.add("text");
    td.appendChild(text);
    tr.appendChild(td);
    table.appendChild(tr);
    updateCheckboxStats(checkbox);
  }
}

function populateMarkWhenCheckedOptions() {
  var container = document.getElementById("markWhenCheckedContainer");

  if (settings.checkboxes.length == 0) {
    container.parentElement.style.display = "none";
    return;
  }

  container.innerHTML = '';
  container.parentElement.style.display = "inline-block";

  function createOption(name, displayName) {
    var id = "markWhenChecked-" + name;

    var div = document.createElement("div");
    div.classList.add("radio-container");

    var input = document.createElement("input");
    input.type = "radio";
    input.name = "markWhenChecked";
    input.value = name;
    input.id = id;
    input.onchange = () => setMarkWhenChecked(name);
    div.appendChild(input);

    // Preserve the selected element when the checkboxes change
    if (name == settings.markWhenChecked) {
      input.checked = true;
    }

    var label = document.createElement("label");
    label.innerHTML = displayName;
    label.htmlFor = id;
    div.appendChild(label);

    container.appendChild(div);
  }
  createOption("", "None");
  for (var checkbox of settings.checkboxes) {
    createOption(checkbox, checkbox);
  }
}

function updateCheckboxStats(checkbox) {
  var checked = getStoredCheckboxRefs(checkbox).size;
  var total = pcbdata.footprints.length - pcbdata.bom.skipped.length;
  var percent = checked * 100.0 / total;
  var td = document.getElementById("checkbox-stats-" + checkbox);
  td.firstChild.style.width = percent + "%";
  td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}

function constrain(number, min, max){
  return Math.min(Math.max(parseInt(number), min), max);
}

document.onkeydown = function (e) {
  switch (e.key) {
    case "n":
      if (document.activeElement.type == "text") {
        return;
      }
      if (currentHighlightedRowId !== null) {
        checkBomCheckbox(currentHighlightedRowId, "placed");
        highlightNextRow();
        e.preventDefault();
      }
      break;
    case "ArrowUp":
      highlightPreviousRow();
      e.preventDefault();
      break;
    case "ArrowDown":
      highlightNextRow();
      e.preventDefault();
      break;
    case "ArrowLeft":
    case "ArrowRight":
      if (document.activeElement.type != "text"){
        e.preventDefault();
        let boardRotationElement = document.getElementById("boardRotation")
        settings.boardRotation = parseInt(boardRotationElement.value);  // degrees / 5
        if (e.key == "ArrowLeft"){
            settings.boardRotation += 3;  // 15 degrees
        }
        else{
            settings.boardRotation -= 3;
        }
        settings.boardRotation = constrain(settings.boardRotation, boardRotationElement.min, boardRotationElement.max);
        boardRotationElement.value = settings.boardRotation
        setBoardRotation(settings.boardRotation);
      }
      break;
    default:
      break;
  }
  if (e.altKey) {
    switch (e.key) {
      case "f":
        focusFilterField();
        e.preventDefault();
        break;
      case "r":
        focusRefLookupField();
        e.preventDefault();
        break;
      case "z":
        changeBomLayout("bom-only");
        e.preventDefault();
        break;
      case "x":
        changeBomLayout("left-right");
        e.preventDefault();
        break;
      case "c":
        changeBomLayout("top-bottom");
        e.preventDefault();
        break;
      case "v":
        changeCanvasLayout("F");
        e.preventDefault();
        break;
      case "b":
        changeCanvasLayout("FB");
        e.preventDefault();
        break;
      case "n":
        changeCanvasLayout("B");
        e.preventDefault();
        break;
      default:
        break;
    }
    if (e.key >= '1' && e.key <= '9') {
      toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
      e.preventDefault();
    }
  }
}

function hideNetlistButton() {
  document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
  document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
  document.getElementById("bom-netlist-btn").style.display = "none";
}

window.onload = function (e) {
  initUtils();
  initRender();
  initStorage();
  initDefaults();
  cleanGutters();
  populateMetadata();
  dbgdiv = document.getElementById("dbg");
  bom = document.getElementById("bombody");
  bomhead = document.getElementById("bomhead");
  filter = "";
  reflookup = "";
  if (!("nets" in pcbdata)) {
    hideNetlistButton();
  }
  initDone = true;
  setBomCheckboxes(document.getElementById("bomCheckboxes").value);
  // Triggers render
  changeBomLayout(settings.bomlayout);

  // Users may leave fullscreen without touching the checkbox. Uncheck.
  document.addEventListener('fullscreenchange', () => {
    if (!document.fullscreenElement)
      document.getElementById('fullscreenCheckbox').checked = false;
  });
}

window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);

///////////////////////////////////////////////

///////////////////////////////////////////////

///////////////////////////////////////////////
  </script>
</head>

<body>

<div id="topmostdiv" class="topmostdiv">
  <div id="top">
    <div style="float: right; height: 100%;">
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="menubtn"></button>
        <div class="menu-content">
          <label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
            <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
            Dark mode
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
            <input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
            Full Screen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
            Fab layer
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
            Silkscreen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
            References
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
            Values
          </label>
          <div id="tracksAndZonesCheckboxes">
            <label class="menu-label" style="width: calc(50% - 18px)">
              <input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
              Tracks
            </label><!-- This comment eats space! All of it!
            --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
              <input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
              Zones
            </label>
          </div>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
            Pads
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
            DNP outlined
          </label>
          <label class="menu-label">
            <input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
            Highlight first pin
          </label>
          <label class="menu-label">
            <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
            Continuous redraw on drag
          </label>
          <label class="menu-label">
            <span>Board rotation</span>
            <span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
            <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
          </label>
          <label class="menu-label">
            <input id="offsetBackRotationCheckbox" type="checkbox" onchange="setOffsetBackRotation(this.checked)">
            Offset back rotation
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Bom checkboxes</div>
            <input id="bomCheckboxes" class="menu-textbox" type=text
                   oninput="setBomCheckboxes(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Mark when checked</div>
            <div id="markWhenCheckedContainer"></div>
          </label>
          <label class="menu-label">
            <span class="shameless-plug">
              <span>Created using</span>
              <a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
              <a target="blank" title="Mouse and keyboard help" href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions" style="text-decoration: none;"><label class="help-link">?</label></a>
            </span>
          </label>
        </div>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
                title="Front only">F
        </button>
        <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
                title="Front and Back">FB
        </button>
        <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
                title="Back only">B
        </button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
                title="BOM only"></button>
        <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
                title="BOM left, drawings right"></button>
        <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
                title="BOM top, drawings bot"></button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
                title="Grouped BOM"></button>
        <button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
                title="Ungrouped BOM"></button>
        <button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
                title="Netlist"></button>
      </div>
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="statsbtn"></button>
        <div class="menu-content">
          <table class="stats">
            <tbody>
              <tr>
                <td width="40%">Board stats</td>
                <td>Front</td>
                <td>Back</td>
                <td>Total</td>
              </tr>
              <tr>
                <td>Components</td>
                <td id="stats-components-front">~</td>
                <td id="stats-components-back">~</td>
                <td id="stats-components-total">~</td>
              </tr>
              <tr>
                <td>Groups</td>
                <td id="stats-groups-front">~</td>
                <td id="stats-groups-back">~</td>
                <td id="stats-groups-total">~</td>
              </tr>
              <tr>
                <td>SMD pads</td>
                <td id="stats-smd-pads-front">~</td>
                <td id="stats-smd-pads-back">~</td>
                <td id="stats-smd-pads-total">~</td>
              </tr>
              <tr>
                <td>TH pads</td>
                <td colspan=3 id="stats-th-pads">~</td>
              </tr>
            </tbody>
          </table>
          <table class="stats">
            <col width="40%"/><col />
            <tbody id="checkbox-stats">
              <tr>
                <td colspan=2 style="border-top: 0">Checkboxes</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="iobtn"></button>
        <div class="menu-content">
          <div class="menu-label menu-label-top">
            <div style="margin-left: 5px;">Save board image</div>
            <div class="flexbox">
              <input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
              <span>X</span>
              <input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
            </div>
            <label>
              <input id="render-save-transparent" type="checkbox">
              Transparent background
            </label>
            <div class="flexbox">
              <button class="savebtn" onclick="saveImage('F')">Front</button>
              <button class="savebtn" onclick="saveImage('B')">Back</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Config and checkbox state</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveSettings()">Export</button>
              <button class="savebtn" onclick="loadSettings()">Import</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Save bom table as</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveBomTable('csv')">csv</button>
              <button class="savebtn" onclick="saveBomTable('txt')">txt</button>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id="fileinfodiv" style="overflow: auto;">
      <table class="fileinfo">
        <tbody>
          <tr>
            <td id="title" class="title" style="width: 70%">
              Title
            </td>
            <td id="revision" class="title" style="width: 30%">
              Revision
            </td>
          </tr>
          <tr>
            <td id="company">
              Company
            </td>
            <td id="filedate">
              Date
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div id="bot" class="split" style="height: calc(100% - 80px)">
    <div id="bomdiv" class="split split-horizontal">
      <div style="width: 100%">
        <input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
               oninput="updateRefLookup(this.value)">
        <input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
               oninput="updateFilter(this.value)">
        <div class="button-container hideonprint" style="float: left; margin: 0;">
          <button id="copy" title="Copy bom table to clipboard"
               onclick="saveBomTable('clipboard')"></button>
        </div>
      </div>
      <div id="dbg"></div>
      <table class="bom" id="bomtable">
        <thead id="bomhead">
        </thead>
        <tbody id="bombody">
        </tbody>
      </table>
    </div>
    <div id="canvasdiv" class="split split-horizontal">
      <div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
      <div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
    </div>
  </div>
</div>

</body>

</html>
